【学习笔记】JU2-1 区间DP
< DP动态规划 > 区间DP:
概述:
区间 DP 是一类比较简单的 DP ,通过分区间进行 DP ,再将各个区间的贡献合并,取区间最优解,最终达到DP的效果。
区间 DP 一般适用于较为明显的合并类问题,或是需要题干中出现了分部分的内容;在一些问题中,区间 DP 可能和记忆化搜索十分相像。
实现:
从小到大枚举区间左标 l 和右标 r , 保证区间长度的由小到大,或是递归地进行求解;
对于每个区间 [ l, r ] ,枚举区间分隔点为 i ,再用 DP 的方式合并区间 [ l, r ] 的贡献。
例题:
模板题,但稍有不同的是要将环破为链,这里可以采用总长 N 乘 2 的方式来做,或是将下标 mod 2 来做。
对于区间来说,这里直接按区间 DP 的套路来做就行了,注意对于每个珠子的头尾标变化。
一道经典的区间 DP 例题,与上题基本一模一样
这道题就不那么显然了,但是关注到合并的操作与石子合并有异曲同工之妙,我们依旧可以用区间 DP 来解决。
定义 D[i][j] 为区间 [ i, j ] 合并后串的最小值,对于每一个[ i, j ] 区间,我们依旧枚举分隔点 k 并递归地求解 [ i, k ] 和 [ k+1, j ] 两段区间的贡献和。
但要注意的一点是,对于每一段区间,在找到它的长度最小值之后还要看它本身能不能折叠,作为本身一个大区间,可以判定它是否能折叠,
并对每一段折叠串 DP 求出最小值,以求出整体折叠后的最小值,并与前面的区间 DP 后的最小值比较,以求出区间最优解。