动态规划

动态规划是在干什么

最重要的一句话:动态规划=局部最优(贪心)+递推(降价)+记录存储结果

做动态规划的时候脑子里要有两个集合,已经考察过的顶点集合S和没有考察过的顶点集合V。并且刚开始只考虑最后一个元素,假设其他元素都已经考虑过了(递推)

对于动态规划本来要考虑的问题,它可能是指数级别复杂度的,比如背包问题O(2^N)

但是,通过选取一种可以描述所有情况的状态,再通过状态之间的关系,列举所有可能的状态把它变为多项式级别。

动态规划的英文dynamic programming的programming是指用表格来记忆问题,其实是一种记忆化搜索。(DFS通过剪枝也不是严格的指数级别)


动态规划的通常做法:
1.刻画一个最优解的结构特征(设计状态)

2.递归地定义最优解的值

3.计算最优解(通常自底向上

动态规划分类


动态规划一般可分为线性动规,区域动规,树形动规,背包动规四类。
线性动规:拦截导弹,合唱队形,挖地雷,建学校,剑客决斗等;
区域动规:石子合并&#
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值