【本文章同步发表至洛谷

5 月 4 日

早上来改模拟赛,T1 赛时 95pts 实际上不是因为卡常,而是题面描述看错了,真实的 k 应当还要减一,改了结果 cwoi 机子又被卡常了,加了个快读还有一些神秘小优化就卡过了。T2 考试的时候脑子不太好,没想到用树状数组 or 线段树维护,其实是一道简单题。T3 依旧人类智慧,赛时怕超时没开太大,改大了一点就过了。

下午来做专题,这题要在原来直接 DFS 的基础上加一点贪心,具体的是拿二进制数表状态 & 每次优先填可放数少的。

5 月 5 日

今天一天都在写专题。这题 DFS 暴搜就行,但要注意剪枝,最重要的四个点就是 1. 将棍子按长度从大到小排序 2. 如果当前剩余未填长度等于此根棍子的长度且无法填完就直接回溯,因为显然拿剩余的短棍子拼成一个这样的棍子不会更优 3. 如果当这根棍子都无法作为开头拼出第一根,那后面的短棍子也显然是不可以的 4. 预处理然后每次选择直接跳到下一个长度不同的棍子。这题及其加强版依旧 DFS 爆搜,有一个剪枝要注意:我们按按当前 r 计算剩余侧面积加上当前已经确定的面积,如果大于等于目前答案就直接返回,猎奇的一点是加强版里的数据范围比原题大 1,然后就被演了。

5 月 6 日

早上改了昨晚晚练,先用单调队列预处理出从每一个点一步最多能到的最左点 & 最右点,然后倍增扩展(拿线段树维护),最后依次查询就做完了。

下午打 CF,T1 秒了;T2 显然就是按照放一个最大的,然后凑 MEX 就完了,为啥一直不对,换了 114514 种稀奇古怪的排序还是不对;T3 就能换则换,不能换就不行就做完了。赛后发现 T2 我求 MEX 有问题,我的做法只能求递增序列的 MEX,关键赛时想破脑袋都想不到会是这里错了。