国庆记录
DP
总




(下标、值域、区间长度、子树大小)

(即考虑后效性,后面计算需要用到的所有东西都记在下标上)

线性 dp & 子序列 dp
线性 dp:从前一个转移。
子序列 dp:可以看作线性 dp 的关键点优化。


例题
-
CF1144G:交替设计状态+对偶优化(当某一维具有单调性,且 dp 值域很小时,考虑将值放入状态下标,然后维护这一维的最大/最小值)。
-
CF813D:滚动数组+关键点优化(将线性 dp 优化为子序列 dp)+前缀优化(适用于求前面某个满足特定要求的决策点)。
区间 dp
区间 dp:特点是贡献拼接、转移顺序非线性。


例题
- CF1922F:利用上面的 trick。
树形 dp

- 树形 dp:从小子树转移到大子树。
dp 优化

例题
- CF1521D
状压 dp
trick:子集枚举、高维前缀和。
背包 dp
- 背包 dp:\(n\) 选 \(k\) 模型。
计数
总
trick:
- 总贡献问题:枚举贡献算方案(拆贡献)。

数据结构
总









例题
- CF1982F:
题型:
-
最优化问题——贪心——由最优调整到合法(本题)或由合法调整到最优。
-
线段树维护信息——类似 dp,求什么设什么——思考 pushup 转移。
- CF1858E2
题型:
-
set 维护最值位置
-
栈维护回滚操作。
思想方法:
- 「将询问挂在一个点上」的思想。
- CF1946F
题型:
- 区间约束 dp——定义二维状态&树状数组+扫描线优化。
- P3960
思想方法:
-
预处理思想。(把不好在线临时算的东西预处理)
-
延迟删除思想。
题型:
- 数据结构上二分维护前缀信息/第一个XX。
构造
总

例题
- CF1519E
思想方法:
-
图论建模技巧——点边对偶(将点视作边)。
-
研究边集时——考虑生成树,分为树边和返祖边。
- CF1697F
题型:
- 2-SAT 建边(3 个)——通常使用 \(x \le i\) 的形式、需要建立逆否命题边(即反向边)、拆点技巧(根据值域拆、拆成 true / false)
图论
总


难点2 :模拟图论算法。
示范:生成树

例题
- CF977E
题型:
- 简单图论题:从度数入手。
- CF1385E
题型:
- 定向问题:研究边集——考虑生成树(树边 & 非树边)
- CF1473E
思想方法:
- 将 dijkstra 视作 dp,通过添加状态满足题目限制。
字符串
总


浙公网安备 33010602011771号