决策单调性
对于类似于 \(F_i = \underset{0\leq j < i}{\min}\{F_j + w(j, i)\}\) 的转移方程,记 \(p_i\) 为 \(i\) 的最优决策,则若 \(p_i\) 单调不减,则乘 \(F\) 具有决策单调性。
一维四边形不等式
对于定义在整数集合上的二元函数 \(w(x, y)\),若满足对于任意 \(a \leq b \leq c \leq d\) 都存在 \(w(a, d) + w(b, c) \geq w(a, c) + w(b, d)\),则称 \(w\) 满足四边形不等式。
它的另一种等价的表现形式是 \(\forall a < b, w(a, b + 1) + w(a + 1, b + 1) \geq w(a, b) + w(a + 1, b + 1)\)。
证明:
对于 \(a < c\),根据四边形不等式,有 \(w(a, c + 1) + w (a + 1, c) \geq w(a, c) + w(a + 1, c + 1)\)。
对于 \(a + 1 < c\),同样地有 \(w(a + 1, c + 1) + w(a + 2, c) \geq w(a + 1, c) + w(a + 2, c + 1)\)。
两式相加并化简得到 \(w(a, c + 1) + w(a + 2, c) \geq w(a, c) + w(a + 2, c + 1)\)。
即对于 \(a, a + 2, c, c + 1\) 也满足四边形不等式。依此类推,\(\forall a \leq b \leq c\),有 \(a,b, c, c + 1\) 满足四边形不等式。这相当于让 \(b\) 从 \(a\) 开始向右滑动,同理可以使 \(d\) 从 \(c\) 开始滑动。所以 \(a, b, c, d\) 满足四边形不等式。
接着有定理:在上文提到的转移方程中,若 \(w\) 满足四边形不等式,则 \(F\) 具有决策单调性。
证明:
为了方便,下文记 \(p_i\) 为 \(p\)。
由于 \(p\) 为 \(i\) 的最优决策,所以对于 \(\forall j < p\),有 \(F_j + w(j, i) \geq F_p + w(p, i)\)。
对于 \(i' > i\),根据四边形不等式,有 \(w(j, i') + w(p, i) \geq w(j, i) + w(p, i')\)。
那么将两式相加即可得到 \(F_j + w(j, i') \geq F_p + w(p, i')\),从而得出对于 \(i'\),\(p\) 一定不劣于 \(j\)。
因此 \(F\) 具有决策单调性。
所以在对于上述转移方程进行转移时,我们可以维护一个 \(p\) 数组。
最开始 \(p\) 全为 \(0\),当我们做完某个 \(F_i\) 时应该考虑对于 \(j > i\),是否决策 \(i\) 优于 \(p_j\)。换句话说,我们要对于所有能更新的 \(j\) 进行更新。
根据决策单调性,一定存在某个分界点 \(p\) 使得 \(p\) 往后的所有都能使用 \(i\) 更新,而 \(p\) 往前的所有都不能用 \(i\) 更新。所以我们可以使用二分。
具体实现中,我们可以构造一个三元组 \((p, l, r)\),表示对于区间 \([l, r]\) 的最优决策是 \(p\)。然后维护队列,一开始加入 \((0, 1, n)\)。然后每次从队头删除小于当前 \(i\) 范围的三元组,从队尾不断访问三元组的 \(l\),看 \(l\) 是否能被更新,如果可以说明 \(l \sim r\) 都可以更新。我们维护一个 \(maxr\),然后直接删除队尾。直到访问到某个 \(l\) 不能更新,就在 \(l \sim r\) 内二分找出 \(p\),然后将区间劈成 \([l, p - 1]\) 和 \([p, maxr]\) 即可。
这样做总体的复杂度是 \(O(nlogn)\),比原先的 \(O(n^2)\) 快很多。
二维四边形不等式
二维四边形不等式用来优化形如 \(F_{i, j} = \underset{1\leq k < j}{\min}\{F_{i, k} + F_{k + 1, j} + w(i, j)\}\) 的方程。
在上述转移方程中,如果满足:
- \(F_{i, i} = w_{i, i} = 0\)
- \(w\) 满足四边形不等式
- 对于任意 \(a \leq b \leq c \leq d\),满足 \(w(a, d) \geq w(b, c)\)
那么 \(F\) 也满足四边形不等式。
证明:
我们考虑数学归纳法。
当 \(j - i = 1\) 时,\(F_{i, j + 1} + F_{i + 1, j} = F_{i, i + 2} + F_{i + 1, i + 1} = F_{i, i + 2}\)。
其中 \(F_{i, i + 2}\) 的最优决策可能为 \(i\) 或 \(i + 1\),我们分别讨论。
若为 \(i + 1\),则有 $$ F_{i, i + 2} = F_{i, i + 1} + F_{i + 2, i + 2} + w(i, i + 2) = w(i, i + 1) + w(i, i + 2) \geq w(i, i + 1) + w(i + 1, i + 2) = F_{i, i + 1} + F_{i + 1, i + 2} = F_{i, j} + F_{i + 1, j + 1} $$
若为 \(i\),同理可得 \(F_{i, i + 2} \geq F_{i + 1, j + 1} + F_{i, j}\)。
所以当 \(j - i = 1\) 时,\(F\) 满足四边形不等式。
接下来我们考虑对于 \(j - i = k\) 的情况,假设我们已经证明了 \(j - i < k\) 时满足四边形不等式。
假设 \(F_{i, j + 1}\) 的最优决策为 \(x\),\(F_{i + 1, j}\) 的最优决策为 \(y\)。设 \(i + 1\leq x \leq y\)。
那么有 \(F_{i, j + 1} + F_{i + 1, j} = F_{i, x} + F_{x + 1, j} + w(i, j + 1) + F_{i + 1, y} + F_{y + 1, j} + w(i + 1, j)\)
同时 \(F_{i, j} + F_{i + 1, j + 1} \leq F_{i, x} + F_{x + 1, j} + w(i, j) + F_{i + 1, y} + F_{y + 1, j + 1} + w(i + 1, j + 1)\)
由于 \(w\) 满足四边形不等式,所以有 \(w(i, j + 1) + w(i + 1, j) \geq w(i + 1, j + 1) + w(i, j)\)
根据归纳假设,\(F_{x + 1, j + 1} + F_{y + 1, j} \geq F_{x + 1, j} + F_{y + 1, j + 1}\)
那么根据以上所有的式子我们可以得到 \(F_{i, j + 1} + F_{i + 1, j} \geq F_{i, j} + F_{i + 1, j + 1}\)
定理(二维决策单调性):
在上述转移方程中,我们记 \(P_{i, j}\) 为 \(F_{i, j}\) 的最优决策,如果 \(F\) 满足四边形不等式,则对于任意 \(i < j\),有 \(P_{i, j - 1} \leq P{i, j} \leq P_{i + 1, j}\)。
证明: