先写清状态含义、转移依赖与初始边界,再按问题结构选择背包、区间、树形、状压或数位等模型。计数与概率问题还需明确累加对象;优化则从状态数和转移代价入手,先证明可用性质,再选择维护方法。
从基础递推和记忆化搜索理解状态复用,再练习不同结构上的建模。每次都检查状态是否保留了后续决策所需的信息,以及计算顺序能否满足转移依赖。
牛客多校第十场 J 题:维护子树合法性,换根时用 DFS 序区间的补集表示另一侧,并以排序、二分检查跨侧连边;附换根过程的 C++ 代码。
先估算状态数量与单次转移开销,定位瓶颈。再辨别滑动窗口、线性决策、决策单调性或凸性等结构;不同优化的适用条件需要分别证明。
牛客多校第十场 D 题:以已考虑场次和参赛场数定义最大得分状态,讨论历史分数衰减带来的截断,并记录利用同场数比较性质进行分治合并的思路与代码。
目录与参考:OI Wiki。原站版权声明
输入关键词开始搜索。