板刷 ABC 计划
前言
difficult:700~2000,可能浮动,水就是真的很水。
记录
322D:
322E:考虑 DP 的写法,1.有多维且定义域很小,可以考虑状压在一起。2.刷表法可以减少冗余状态对外转移,减少复杂度
3.某些不必要的状态可以优化掉,也就是考虑自己只关心哪些状态
322F:水。线段树板子。
321D:拆 min。水。
321E:思路不难,实现起来很恶心,在实现前尽量考虑好可能遇到的各种细节,然后再决定使用什么方法实现,不然会耗费很久时间。
321F:可撤销背包板子。1.背包的物品是无需考虑顺序的,2.对于撤销操作能方便维护的可以直接维护。
320E:水。STL模拟。
320F:
319C:水。对于需要多次使用的重复功能,不妨用函数封装好,方便实现很多。
319E:对于模数的一些技巧,1.是否为 k 的倍数就只关心对 k 的取摸模数,2. a 与 a+p*lcm({k1~kn}) 对 k1~kn 分别取模的结果相等。
318D:可以练练搜索。水。转换关注(处理)对象,减小复杂度。
318E:简单计数。水。计数可以考虑贡献的思想做到不重不漏。
317D:需要一点转化。水
317E:水。
315D:多注意观察一下均摊复杂度,多观察一类操作的上限,看似是更劣的复杂度,实际上是正确的复杂度,还能多枚举一些东西,方便维护很多。
315F:
1.考虑 DP 时可以把无效/完全不会更优状态减去,这样能省时间空间,如此题指数增长是很快的,于是只记录 30 个跳过的点数即可。
2.注意这样一类 DP:需要明确知道上一次决策选的啥才能转移到当前决策的话,是需要类似 LIS 一样记录最后一个选的决策是啥,才能知道如何转移
而不能无脑记成这样 f[i]:前 i 个数的最长上升子序列。这样你无法转移。只能记录成 f[i]:前 i 个数,且以第 i 个数结尾的最长上升子序列,才能够完美划分子问题并转移。
所以对于初始化也需要特别注意,因为状态表示了一定选当前的某个决策。
314D:
314E:
313D:1.有奇偶性可以转成异或处理,2.可以先考虑弱化版,再推广到一般。
313E:水
312D:水
312F:通过枚举,可以去掉某些限制,或者把某些未知的值用枚举变成已知的值,更好考虑。
311D:水
311E:一类典题。
310D:
1.很小范围可以考虑爆搜的,然后加点剪枝,这里用了可行性(因为是统计方案个数,最优性没办法用上)
2.对于一类方案数有重复的问题,可以在求出答案后减去有影响的。这里是因为 t 个队伍不考虑顺序,但状压考虑了顺序,所以需要减去顺序的影响,那么除以 t!。
310E:水
310F:鸽子。
309D:水
309E:corner case:有个注意点,考虑负数的情况(在 这份代码 里没考虑到负数,导致出错)。
309F:水

浙公网安备 33010602011771号