二至济南--动态规划
\(update: 2025/7/24\)
说实话,\(DP\)要是考得难就真不如学暴力
很想爆搜+记忆化,不同的是\(DP\)采用用记忆过的已知来"推理"出未知
背包\(DP\)
最简单的一种\(DP\),但有极多的变形
每个物品有价值和一些限制,问在满足限制的情况下的最大(有的题目问最小)价值
\(01\)背包
最简单的\(DP\),对于每个物品只有取与不取两种,每个物品相对独立
例题不补
完全背包
\(01\)背包的加强,每个物品可以取任意次,每个物品相对独立
例题不补
多重背包
物品只能取有限次,每个物品相对独立,通常用二进制拆分
例题不补
二进制拆分
多用于多重背包,将其中多个物品拆分成\(1,2,4,8,...\)倍的物品,直到拆不了剩下一堆,可以证明这么拆可以表示其中的所有情况
分组背包
物品不再相对独立,部分物品位于一个集合,选取其中的物品有一定限制
例题不补
回退背包
删除背包中的一个元素
反悔背包
在背包\(DP\)中,放入顺序是不必要的,我们在求得所有物品都在的情况后,再枚举删除元素来做到"回退"操作
例题: P4141 消失之物
区间\(DP\)
将一段区间分成几段(一般是两段),然后枚举断点转移
树形\(DP\)
在树上的\(DP\),从叶子到根,用自己的儿子更新自己
状压\(DP\)
一般用于\(n\le 20\)但是\(2^n\)级的枚举
枚举每一种情况,然后转移