7.22 训练总结
zak 讲课,zak 还是太牛了。
part 1: 组合优化
其实主要是决策单调性的题,这部分练了一坨了,难点完全在怎么 dp。
放一些我觉得比较好的题我写的题解,没写的简单口胡一下(一定原因是因为在别的地方听过所以不够深刻,也有的是简单小趣题)。
qoj9737 Let's Go! New Adventure
uoj852 【JOISC2023】合唱:主要是经典的转化,将 \(AB\) 转化为 \(+1,-1\),然后转化为缺掉的面积大小直接 dp。
part 2:构造
构造其实一般来说不会太困难,有些结论要多蒙,不会有很复杂很诡异的充要条件的,手玩对做构造十分有用。
P3524 [POI 2011] IMP-Party:注意到我们每次删掉一对不连通的点一定只会删掉团中的一个点,删 \(\frac{n} 3\) 次即可。
uoj751 神隐:同样是上面 CF1365G 的 trick,主要问题在于怎么快速处理树,经典的构造 trick 是剥叶子,每次找到单点出现 \(\frac{lim}2\) 次的点就是叶子,定位父亲就自己处于的所有连通块中深度最小的点中除自己以外的深度最大点。
part 3: 计数
其实计数和构造相当类似,手玩推性质很重要,一个很困难的东西要转化为尽量好做的充要条件。
P2481 [SDOI2010] 代码拍卖会:低位大于等于高位是一个经典的 trick,将数分解为 \(11\cdots 1\),然后直接背包即可。
CF1750F Majority:需要先观察到相邻的一定是更可能操作的,然后考虑正难则反,dp 不可行的解数量,很巧的一点是为了保证两端不能合并,可以直接将一个 0 段和一个 1 段一起加入。