动态规划学习笔记

三大基础特征

最优子结构

整个问题的最优解不一定是子问题的最优解。(是的话就可以贪心了)

但是一定可以通过子问题的最优解推导过来。

无后效性

两种含义。

第一种是前面的子问题的具体解法不影响后面步骤的决策。

第二种是无需知道前面的子问题的具体决策都是什么,只关心最后子问题的状态。

重叠子问题

参考记忆化搜索,同一个子问题可能会重复需要很多次。

记忆化搜索与递推

与递推相比,记忆化搜索因为不用明确规定访问顺序,在实现难度上有时低于递推,且能比较方便地处理边界情况,这是记忆化搜索的一大优势。
但与此同时,记忆化搜索难以使用滚动数组等优化,且由于存在递归,运行效率会低于递推。

SOSDP

还有个名字叫高维前缀和。

不错的Blog

之前一直在想为什么求子集的和和求超集的和是对的,突然想到每次找一个第i位为1的状态,异或之后这一位是0,那这样每次转移只会从0的转移到1的,而0的在这一轮DP是肯定不会发生转移的,只有1的会在这一轮发生转移,所以顺序是无所谓的。同理,超集也是一样。

posted @ 2023-06-26 22:45  ResurrectionTX  阅读(9)  评论(0编辑  收藏  举报