浅谈动态规划

最近连续好几天都在复习动态规划,也算有点心得体会,再次略记一下

  • 动态规划的思路来源

动态规划是近几年的常考题目,所以如果想要学好动规,就必须要活学活用。
做出动态规划一般分为以下几个步骤:

  1. 定状态:

    状态是一个动规题的灵魂,状态的定义一般有一些常用方式,比如说:当前元素是否被用过?(可以用0/1来表示用过或没用过),最重要的是,要求什么什么就设什么,其他影响它的因素全都放到状态的其他维里。

  2. 初始化:

    动规的初始化很简单,其实就有下面几种常见方式:
    (1) 求最大值,则初始化成负无穷(最小值反之)
    (2) 不合法的状态初始化成正无穷(有时是负无穷,还有时候是0)

  3. 定转移:

    有了状态,转移方程也就好写了,一般就要考虑,当前状态是被那个状态转移来的?当前状态可以转移到那些状态?从而进行转移

  • 动态规划的分类

动态规划分类很多,一般来说,常用的有以下几种:

  1. 线性动规(题型灵活,极为常见)
  2. 树形动规(偏难,较为灵活,可以与背包,记搜等结合)
  3. 区间DP (题目难度不大,不是非常灵活)
  4. 状态压缩DP (数据很小,扩展性不高,极难理解)
  • 动态规划的写法

    对于我个人而言(然鹅我也很蒟蒻),一般是先定一个极为复杂的状态(有时可以达到8维),然后写一遍转移方程,最后进行优化(降维等)

  • 个人对DP的看法

    俗话说的好:

    OI毒瘤千千万,DP树剖各一半 \(\ \ \ \ \ \ ——by 某博客\)

    (动态规划确实比树剖难得多)我只有一句话了,DP真是太毒瘤了!!

posted @ 2022-02-01 14:03  Link-Cut-Y  阅读(118)  评论(0编辑  收藏  举报