WIKIOI
wiki(I:)
比赛相关
工具软件
语言基础
算法基础
搜索
动态规划
字符串
数学
数据结构
图论
计算几何
杂项
专题
动态规划部分简介
动态规划基础
记忆化搜索
背包 DP
区间 DP
DAG 上的 DP
树形 DP
状压 DP
数位 DP
插头 DP
计数 DP
动态 DP
概率 DP
单调队列/单调栈优化
斜率优化
四边形不等式优化
状态设计优化
其它 DP 方法
18 objects
本站非官方,所收集资源均来源于网络。
区间 DP - 动态规划
## 什么是区间 DP? 区间类动态规划是线性动态规划的扩展,它在分阶段地划分问题时,与阶段中元素出现的顺序和由前一阶段的哪些元素合并而来由很大的关系。令状态 $f(i,j)$ 表示将下标位置 $i$ 到 $j$ 的所有元素合并能获得的价值的最大值,那么 $f(i,j)=\max\\{f(i,k)+f(k+1,j)+cost\\}$ , $cost$ 为将这两组元素合并起来的代价。 区间 DP 的特点: **合并** :即将两个或多个部分进行整合,当然也可以反过来; **特征** :能将问题分解为能两两合并的形式; **求解** :对整个问题设最优值,枚举合并点,将问题分解为左右两个部分,最后合并两个部分的最优值得到原问题的最优值。 ### " 例题[「NOI1995」石子合并](https://loj.ac/problem/10147)" > 题目大意:在一个环上有 $n$ 个数 $a_1,a_2,...,a_n$ ,进行 $n-1$ 次合并操作,每次操作将相邻的两堆合并成一堆,能获得新的一堆中的石子数量的和的得分。你需要最大化你的得分。 考虑不在环上,而在一条链上的情况。 令 $f(i,j)$ 表示将区间 $[i,j]$ 内的所有石子合并到一起的最大得分。 写出 **状态转移方程** : $f(i,j)=max\\{f(i,k)+f(k+1,j)+\sum_{t=i}^{j} a_t \\}~(i\le k