动态规划思路总结(初稿)

初步总结了一下,有以下五个步骤。

在这里插入图片描述

1、思考状态

状态先尝试题目问什么,就把什么设置为状态。如果不行,就从状态转移方程去思考,状态怎样定义,状态转移方程会容易得出。

2、状态转移方程(核心、难点)

技巧是分类讨论。即“对状态空间进行分类”,“大类”可以又“小类”转化而来。

状态转移方程是非常重要的,是动态规划的核心,也是难点,起到承上启下的作用。

除了掌握经典的动态规划问题以外,还需要多做题。

3、思考初始化

初始化是非常重要的,俗话说,一步错,步步错,一开始就得弄对哦。

角度 1:直接从状态的语义出发。

角度 2:如果状态的语义不好思考,就考虑“状态转移方程”的边界需要什么样初始化的条件。

角度 3:从“状态转移方程”方程的下标看是否需要多设置一行、一列表示“哨兵”,这样可以避免一些边界的讨论,使得代码变得比较长。

4、思考输出

这一步比较简单。有些时候是最后一个状态,有些时候可能会绕一个弯子。

5、思考状态压缩

这一步非必需,在状态特别多的时候,可能需要。“状态压缩”会使得代码难于比那些、难于理解,初学的时候可以不一步到位。先把代码写正确是很重要的。

状态压缩在有一种情况下是很有必要的,那就是状态空间非常庞大的时候(处理海量数据),此时空间不够用,就必须状态压缩。如果状态空间很小,有时也不必压缩。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值