动态规划

思考路径:

子问题的递归暴力穷举—>剪枝、记忆化搜索—>动态规划

 

特征:

分治策略

与分治法不同的是,适合动态规划法求解的问题,经分解得到的子问题往往不是相互独立的。

会重复计算。

 

基本要素构成:

最优子结构(问题的最优解包含了其子问题的最优解)

状态转移方程

重叠子问题

 

解题步骤:

  • 问题拆解,找到问题之间的具体联系
  • 状态定义
  • 递推方程推导
  • 实现

 

题目类型:

矩阵类动态规划(图、数组):对于第 i 个位置的状态分析,考虑当前位置及邻近的状态)

序列类动态规划(对于第 i 个位置的状态分析,它不仅仅需要考虑当前位置的状态,还需要考虑前面 i – 1 个位置的状态,其实就是寻找当前状态和之前所有状态的关系)【这种一般是指,要分为区间讨论的,或者有相邻限制的,其实和区间dp是一个意思】『应该不是区间dp吧』

股票

 

也可以分为线性dp和区间dp,

线性dp一般是在前缀或后缀上转移。

区间dp是指从小区间转移到大区间。其中,分为两种:从两侧向内说小问题规模,也就是两个端点选或不选(最长回文子序列);第二个则是。分割为规模更小的子区间,枚举看选哪个(1039,堆石子)。

显示 Gitment 评论