精华

区间 DP :

区间 DP 的特点:

  1. 合并:即将两个或多个部分进行整合,当然也可以反过来;
  2. 特征:能将问题分解为能两两合并的形式;
  3. 求解:对整个问题设最优值,枚举合并点,将问题分解为左右两个部分,最后合并两个部分的最优值得到原问题的最优值。

这是大部分区间 DP 所包含的特点。解决该问题,应该从简单的开始,然后扩展到最后最难的部分。


字符串折叠 字符合并 成绩单 压缩

这四道题不同在于,当前状态的转移,会影响其他,也就是有后效性。怎么解决呢?那就是把有后效性的东西设进状态里。

就比如“成绩单”这道题,内部合并的时候不确定有没有把最大(小)的给用掉,为了没有后效性,所以把最大(小)值设进状态里。(我还没过)

字符串折叠、字符合并、压缩也是一样的。


祖玛游戏 括号序列

这两道题体现了状态越详细,转移更简单。


背包

朴素的背包问题都是非常简单的。单调队列(多重)、二进制(完全)、bitset(是否能拼出一种体积)就够用了。

而有思维难度的背包题一般有如下几个特点:

  1. 数据范围很大,不能用常规套路解决
  2. 数据范围有明显的特点,突破点一般在这里

如果不满足以上特点,还有几种情况:

  1. 方案数
  2. 详细方案
  3. 去掉某些物品等等...

方案数:弄清楚从哪些地方转移过来,哪些部分会重复

详细方案:一般都有字典序的要求,可以反着推,也可以在转移的时候记录路径(不推荐)

DP 问题很多时候可以用这种思想:正难则反,

posted @ 2023-12-11 11:01  emo_male_god  阅读(10)  评论(0)    收藏  举报  来源