动态规划学习笔记
三大基础特征
最优子结构
整个问题的最优解不一定是子问题的最优解。(是的话就可以贪心了)
但是一定可以通过子问题的最优解推导过来。
无后效性
两种含义。
第一种是前面的子问题的具体解法不影响后面步骤的决策。
第二种是无需知道前面的子问题的具体决策都是什么,只关心最后子问题的状态。
重叠子问题
参考记忆化搜索,同一个子问题可能会重复需要很多次。
记忆化搜索与递推
与递推相比,记忆化搜索因为不用明确规定访问顺序,在实现难度上有时低于递推,且能比较方便地处理边界情况,这是记忆化搜索的一大优势。
但与此同时,记忆化搜索难以使用滚动数组等优化,且由于存在递归,运行效率会低于递推。
SOSDP
还有个名字叫高维前缀和。
之前一直在想为什么求子集的和和求超集的和是对的,突然想到每次找一个第i位为1的状态,异或之后这一位是0,那这样每次转移只会从0的转移到1的,而0的在这一轮DP是肯定不会发生转移的,只有1的会在这一轮发生转移,所以顺序是无所谓的。同理,超集也是一样。

浙公网安备 33010602011771号