acm-dp-2

  动态规划的特点有最优子结构和大量的重复计算。计算的过程就是一个化繁为简的过程。在这其中需要考虑所有的情况,列举所有的解,想要化繁为简,所以运用了最优化原理,但是每个动态规划问题都有其特殊性,或者很难找到最优子结构,或者很难找到重复子问题。为了更模式化的,条例更清晰的解决dp,我搜索了一些方法。

  动态规划算法三要素:

              ①所有不同的子问题组成的表②解决问题的依赖关系可以看成是一个图③填充子问题的顺序

  通过这样的一个三要素来做题,确实思路会明确一些,主要是找到了子问题之间的关系。这样就便于划分阶段,便于对元素通过时间和空间等来定义状态。状态设计完之后在依据着依赖关系进行状态转移。

  在最开始设计状态或者方程的时候一定不要想着一开始就想到正解,正解一般都是由暴力优化过来的,所以想到最直接的状态然后进行优化状态设计。

  更需要注意的是,我在最开始dp的时候只会考虑一次dp出答案,但其实可以用两次dp或者更多次dp来得出答案,例如当转移有些不好表达的时候,可以考虑再设计的一个状态来方便方程的转移,总而言之,dp就是运用状态的设计和之间的转移来间接得到最终答案的过程。

  此外,要注意dp边界的取值,可以根据dp方程带具体值来试,也可以直接根据状态定义来设计边界取值。边界的问题其实是很烦的,因为在状态设计的时候就需要单独拿出来,是需要时常注意的问题。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值