四边形不等式优化 DP 笔记
一、四边形不等式
若矩阵 \(w\) 满足如下两个条件之一,则它满足四边形不等式:
二、DP 决策单调性
下文假设 \(w(j,i)\) 的计算复杂度为 \(O(1)\)。
形式一:1D 动态规划
若对于转移方程 \(\displaystyle f_i = \min_{j=1}^{i-1} \{ f_{j-1} + w(j, i) \}\),\(i\) 的最优决策点 \(p_i\) 随 \(i\) 递增单调不降,则它有决策单调性。
定理:若 \(w\) 矩阵满足四边形不等式,则 \(f\) 具有决策单调性。
形式二:序列分段
对于另一种 DP 形式:\(f_{i,j}\) 表示一个序列前 \(i\) 个数分为 \(j\) 个连续段,转移应当枚举这一段的左端点 \(k\):
定理:若 \(w\) 矩阵满足四边形不等式,则固定 \(j\) 后 \(f_{?,j}\) 第一维也具有决策单调性。
形式三:区间 DP
经典例题:石子合并。
定理:
若 \(w\) 矩阵满足四边形不等式,则 \(f\) 也满足四边形不等式。
设 \(p_{i,j}\) 为 \(f_{i,j}\) 的最优决策点 \(k\),那么满足 \(p_{i,j-1} \leq p_{i,j} \leq p_{i+1,j}\),等价于 \(p\) 的每行每列单调不减。
根据该定理,方程可以改写为:
由于第 \(len\) 层有 \(len\) 个决策点,相邻两个区间只有决策点会被重复计算一次,所以复杂度降低至 \(O(n^2)\)。
三、决策单调性的转移
对于形式三直接入上文转移即可,接下来介绍前两种形式的求解。
解法一:二分队列
在线,大致思想是:原本需要对 \(p\) 数组做区间覆盖,不采用线段树等数据结构而是用队列模拟。
下图来自李煜东《算法竞赛进阶指南》。
解法二:分治
离线。
考虑现在要求解 \([l, r]\) 的 DP 值,该区间的最优决策点在 \([pl, pr]\)。
先暴力扫一遍 \([pl, pr]\) 求出该区间 \(mid\) 下标的最优决策点。
然后分治 \([l, mid-1] - [pl, p_{mid}]\) 和 \([mid+1, r] - [p_{mid}, pr]\)。