动态规划入门

动态规划

首先什么是动态规划?
用动态思想的解决问题。一个大问题分解成若干个子问题,对子问题求解,其中一个子问题的求解会影响另一个子问题的求解,求解出所有子问题的可能情况,选择出最合适的情况即可。

为什么是动态规划?
动态规划涵盖范围大,他可以解决不少问题,包括贪心问题。但动态规划中的有些问题并不能用贪心来解决,动态规划是统筹全局的算法,他看的并不仅仅是眼前的最优解而是总体的最优解,需要的是全局思想。

动态规划特征
1.动态规划具有多阶段决策的特征,每一阶段都有每一阶段相应的“状态”。
2.每一阶段都面临不同的决策,对当前决策的不同选择会导致下一阶段的不同状态。
3.每一阶段的最优解问题可以递归成下一阶段各个可能状态的最优解问题,各个子问题与原问题有着相同的子结构。

动态规划的重要概念
阶段
状态
决策
状态转移方程(核心)

动态规划问题步骤
1.先判断,看看问题是否有最优子结构,如果没有,这不能用动态规划解题;
2.将问题分成若干个子问题(分阶段);
3.建立状态转移方程(精髓:递推方程);
4.找出边界;
5.将边界值带入方程;
6.递推求解。

小例题
描述
设有一个三角形的数塔,顶点为根结点,每个结点有一个整数值。从顶点出发,可以向左走或向右走,如图所示:
在这里插入图片描述
若要求从根结点开始,请找出一条路径,使路径之和最大,只要输出路径的和。

输入
第一行为n(n<50),表示数塔的层数
从第2行至n+1行,每行有若干个数据,表示数塔中的数值。
输出
最大的路径值。
样例输入
5
13
11 8
12 7 26
6 14 15 8
12 7 13 24 11
样例输出
86

题目分析

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值