码迷,mamicode.com
首页 > 其他好文 > 详细

初识动态规划

时间:2018-10-11 01:35:20      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:转移   nbsp   动态规划   个数   其他   时间复杂度   动规   数字   最优   

1.能用动态规划解决的问题的特点:

  1)问题具有最有子结构性质。如果问题的最优解包含的子问题的解也是最优的,就称该问题有最优子结构性质

  2)无后效性。当前的若干状态值一旦确定,则此后过程的演变就之和这若干个状态的值有关,和之前是采取哪种手段或经过那条路径演变到当前的这若干个状态,没有关系。

 

2.思路:

  1)把原问题分解为若干个子问题,子问题和原问题形式相同或类似,只不过规模变小了。子问题解决了,原问题即可解决。子问题的解一旦求出就会保存,所以只需要求一次

  2)确定状态:整个问题的时间复杂度是状态数乘以计算每个状态所需时间,状态可以是一个数(如:数字三角形求最大和),也可以是一行(如:二维数组),也可以是其他形式。

  3)确定初始状态 / 边界状态的值。

  4)确定状态转移方程不同状态之间如何迁移

 

例题:最长上升子序列hdu1069,数字三角形

 

动规常见的两种形式:递归型(容易爆栈),递推型(可以用动态滚动数组,但要注意顺序,方向)

 

  

 

初识动态规划

标签:转移   nbsp   动态规划   个数   其他   时间复杂度   动规   数字   最优   

原文地址:https://www.cnblogs.com/lyqf/p/9770014.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!