简单线性DP总结

虽然说是线性DP总结,但是笔者在这里还是想将DP的思想以及细节等等总体梳理一遍 在这里也感谢雨神视频让我对DP的理解更加的深入

首先 动态规划适用的条件是该问题有最优子结构、无后效性、通过每个最优子结构状态的递推可以推出整体的最优解  对这些基本概念的理解既要理性也要一点点感性

DP问题解决顺序是:
1、确定状态 (通过最后一步将问题转化为规模更小的子问题)2、转移方程 3、初始条件与边界情况 4、计算顺序

其中前两步是十分重要的,尤其是第一步,如果当前的状态无法总结他的历史,那么这个状态的定义就会在推导方程式的时候遇到问题,继而说明这样的状态是不合格的

我们先引入最简单的DP(递推)问题 走楼梯

想必这个题大家都已经熟的不能再熟了,他的DP式为f[i] = f[i-1]+f[i-2]

下面我们进行一些改动,即在这些楼梯上有一些楼梯是坏掉的,即无法走到,那么它对应的方程式又是怎样的呢?

显然单纯的 f[i] = f[i-1]+f[i-2] 已经无法保证我们的最终答案是正确的了,因为我们无法知道i第i-1 、i-2个楼梯是否是可行走的,这样我们在DP时就需要进行修改,即碰到坏掉的楼梯时,我们就直接f[i]=0

我们的问题得到了解决,那么这个问题再次变换呢?

最长上升子序列问题 :

最大子段和问题:

猜你喜欢

转载自www.cnblogs.com/delta-cnc/p/12466433.html
今日推荐