动态规划

动归不是某种具体的算法,而是一种思想,核心在于把大问题转化为小问题,利用小问题的解推判断大问题的解

动态规划很像递推,不同的是,递推求的是一个数据,对数据进行操作
动态规划求的是最优的状态,最优的方案,通过

就像上楼梯问题,假设f数组表示从0走到x的方案数,那么fn怎么进行推测呢?只需要f[n] = f[n-1] + f[n-2],这就是此问题的递推式

我们用大事化小小事化了的思想,解决这类上楼梯问题,为什么大事可以化为小呢?因为大事小事都要一样的形式,如果满足这个要求那么我们每遇到问题都可以坚决表达,这种局面叫做状态,设计完动态直接利用小来求大,就可以把题目做出来

确定状态,求出f数组的意义表示,然后我们需要将小状态推出大状态,这个过程为状态转移,这个式子为状态转移方程,我们需要考虑这个局面从哪过来的

动归还可以用另一种设计转移的思路,当前状态解已知需要利用这个解去更新他能走到的状态,也就是我从哪里来,我到哪里去

一个是对于没有求出解的状态,利用能走到的他的状态得出它的解,一个是对于一个求好的状态那它去更新它能走到的地方

记忆化搜索和按顺序递推式动归的两种高效实现方法,记忆化搜索有时候更节省时间,空间,因为不可能达到的状态是不会被搜索到的

决策类的动归,需要满足两个原则1.大问题的最优解,一定是从小问题最优解出来的;2.无后效应,现在的决策只与过去的结果有关,和过去的决策无关,也就是只看最后的值,而不看这个值是怎么来的

总结:dp三连,1我是谁,设计状态;2我从哪里来;3我到哪里去

Dp实现,按顺序递推,记忆化搜索

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值