若对于 i ≤ i ′ ≤ j ≤ j ′ i\leq i'\leq j \leq j' i≤i′≤j≤j′,二维数组 a a a 满足如下性质:
a i , j + a i ′ , j ′ ≤ a i , j ′ + a i ′ , j a_{i,j} + a_{i',j'} \leq a_{i,j'} + a_{i', j} ai,j+ai′,j′≤ai,j′+ai′,j
则称数组 a a a 满足四边形不等式。
若对于 i ≤ i ′ ≤ j ≤ j ′ i\leq i'\leq j \leq j' i≤i′≤j≤j′,二维数组 a a a 满足如下性质:
a i ′ , j ≤ a i , j ′ a_{i',j} \leq a_{i,j'} ai′,j≤ai,j′
则称数组 a a a 满足关于区间包含的单调性。
动态规划中有一种常见的转移方程(一般见于区间 DP):
f i , j = { min i ≤ k < j { x ∣ x = w i , j + f i , k + f k + 1 , j } i < j 0 i = j ∞ i > j f_{i,j}=\begin{cases} \min\limits_{i\leq k< j}\{x|x=w_{i,j}+f_{i,k}+f_{k+1,j}\}&i<j\\ 0&i=j\\ \infty&i>j\end{cases} fi,j=⎩ ⎨ ⎧i≤k<jmin{x∣x=wi,j+fi,k+fk+1,j}0∞i<ji=ji>j
如果这时 w i , j w_{i,j} wi,j 同时满足四边形不等式和区间包含单调性,则可以使用四边形不等式优化。
推导过程:
首先可以证明二维数组 f f f 也满足四边形不等式,即
f i , j + f i ′ , j ′ ≤ f i , j ′ + f i ′ , j f_{i,j} + f_{i',j'} \leq f_{i,j'} + f_{i', j} fi,j+fi′,j′≤fi,j′+fi′,j
分类讨论:
① 若
i
=
i
′
≤
j
≤
j
′
i = i'\leq j \leq j'
i=i′≤j≤j′ :
f
i
,
j
+
f
i
′
,
j
′
=
f
i
′
,
j
+
f
i
,
j
′
\begin{aligned} f_{i,j} + f_{i',j'} &= f_{i',j} + f_{i,j'}\end{aligned}
fi,j+fi′,j′=fi′,j+fi,j′
② 若
i
<
i
′
≤
j
=
j
′
i < i'\leq j = j'
i<i′≤j=j′ :
f
i
,
j
+
f
i
′
,
j
′
=
f
i
,
j
′
+
f
i
′
,
j
\begin{aligned} f_{i,j} + f_{i',j'} &= f_{i,j'} + f_{i',j}\end{aligned}
fi,j+fi′,j′=fi,j′+fi′,j
③ 若 i < i ′ = j < j ′ i < i' =j < j' i<i′=j<j′ :
原不等式则转换为:
f
i
,
j
+
f
j
,
j
′
≤
f
i
,
j
′
+
f
j
,
j
\begin{aligned} f_{i,j} + f_{j,j'} &\leq f_{i,j'} + f_{j, j} \end{aligned}
fi,j+fj,j′≤fi,j′+fj,j
因
f
j
,
j
=
0
f_{j,j} =0
fj,j=0,又转化为:
f
i
,
j
+
f
j
,
j
′
≤
f
i
,
j
′
\begin{aligned} f_{i,j} + f_{j,j'} &\leq f_{i,j'} \end{aligned}
fi,j+fj,j′≤fi,j′
对于所有
i
i
i,都有:
f
i
,
i
+
1
+
f
i
+
1
,
i
+
2
=
w
i
,
i
+
1
+
w
i
+
1
,
i
+
2
+
f
i
,
i
+
f
i
+
1
,
i
+
1
+
f
i
+
1
,
i
+
1
+
f
i
+
2
,
i
+
2
=
w
i
,
i
+
1
+
w
i
+
1
,
i
+
2
≤
w
i
,
i
+
2
≤
f
i
,
i
+
2
\begin{aligned} f_{i,i+1} + f_{i+1,i+2} &= w_{i,i+1} + w_{i+1,i+2} + f_{i,i} + f_{i+1,i+1} + f_{i+1,i+1} + f_{i+2,i+2}\\&= w_{i,i+1} + w_{i+1,i+2}\\&\leq w_{i,i+2}\\&\leq f_{i, i+2}\end{aligned}
fi,i+1+fi+1,i+2=wi,i+1+wi+1,i+2+fi,i+fi+1,i+1+fi+1,i+1+fi+2,i+2=wi,i+1+wi+1,i+2≤wi,i+2≤fi,i+2
设 k = max i ≤ x ≤ j { x ∣ f i , j = w i , j + f i , x + f x + 1 , j } k=\max\limits_{i\leq x\leq j}\{x|f_{i,j} = w_{i,j} + f_{i,x} + f_{x+1,j}\} k=i≤x≤jmax{x∣fi,j=wi,j+fi,x+fx+1,j}。
此时,若 k ≤ i ′ = j k\leq i' = j k≤i′=j
假设 f k + 1 , j + f i ′ j ′ ≤ f k + 1 , j ′ f_{k+1,j} + f_{i'j'} \leq f_{k+1,j'} fk+1,j+fi′j′≤fk+1,j′ 成立,则有
f i , j + f j , j ′ ≤ w i , j + f i , k + f k + 1 , j + f j , j ′ ≤ w i , j ′ + f i , k + f k + 1 , j + f j , j ′ ≤ w i , j + f i , k + f k + 1 , j ′ ≤ f i , j ′ \begin{aligned} f_{i,j} + f_{j,j'} &\leq w_{i,j} + f_{i,k} + f_{k+1,j} + f_{j,j'}\\&\leq w_{i,j'} + f_{i,k} + f_{k+1,j} + f_{j,j'}\\ &\leq w_{i,j}+f_{i,k}+f_{k+1,j'}\\&\leq f_{i,j'}\end{aligned} fi,j+fj,j′≤wi,j+fi,k+fk+1,j+fj,j′≤wi,j′+fi,k+fk+1,j+fj,j′≤wi,j+fi,k+fk+1,j′≤fi,j′
若 k > i ′ = j k > i' = j k>i′=j
假设 f k + 1 , j + f i ′ j ′ ≤ f k + 1 , j ′ f_{k+1,j} + f_{i'j'} \leq f_{k+1,j'} fk+1,j+fi′j′≤fk+1,j′ 成立,则有
f i , j + f j , j ′ ≤ f i , j + w j , j ′ + f j , k + f k + 1 , j ′ ≤ w i , j ′ + f i , j + f i ′ , k + f k + 1 , j ′ ≤ w i , j + f i , k + f k + 1 , j ′ ≤ f i , j ′ \begin{aligned} f_{i,j} + f_{j,j'} &\leq f_{i,j} + w_{j,j'} + f_{j,k} + f_{k+1,j'}\\&\leq w_{i,j'} + f_{i,j} + f_{i',k} + f_{k+1,j'} \\ &\leq w_{i,j}+f_{i,k}+f_{k+1,j'}\\&\leq f_{i,j'}\end{aligned} fi,j+fj,j′≤fi,j+wj,j′+fj,k+fk+1,j′≤wi,j′+fi,j+fi′,k+fk+1,j′≤wi,j+fi,k+fk+1,j′≤fi,j′
综述,通过数学归纳法可知:
f i , j + f j , j ′ ≤ f i , j ′ \begin{aligned} f_{i,j} + f_{j,j'} &\leq f_{i,j'} \end{aligned} fi,j+fj,j′≤fi,j′
④ 若 i < i ′ < j < j ′ i < i' <j < j' i<i′<j<j′ :
设
k
1
=
max
i
≤
x
≤
j
′
{
x
∣
f
i
′
,
j
=
w
i
′
,
j
+
f
i
′
,
x
+
f
x
+
1
,
j
}
k_1=\max\limits_{i\leq x\leq j'}\{x|f_{i',j} = w_{i',j} + f_{i',x} + f_{x+1,j}\}
k1=i≤x≤j′max{x∣fi′,j=wi′,j+fi′,x+fx+1,j}。
设
k
2
=
max
i
′
≤
x
≤
j
{
x
∣
f
i
,
j
′
=
w
i
,
j
′
+
f
i
,
x
+
f
x
+
1
,
j
′
}
k_2=\max\limits_{i'\leq x\leq j}\{x|f_{i,j'} = w_{i,j'} + f_{i,x} + f_{x+1,j'}\}
k2=i′≤x≤jmax{x∣fi,j′=wi,j′+fi,x+fx+1,j′}。
若 k 1 ≤ k 2 k_1\leq k_2 k1≤k2,因为 i ≤ k 1 ≤ j ′ , i ′ ≤ k 2 ≤ j i \leq k_1 \leq j', i' \leq k_2\leq j i≤k1≤j′,i′≤k2≤j,所以 i ≤ k 1 ≤ k 2 ≤ j i\leq k_1\leq k_2 \leq j i≤k1≤k2≤j。
所以 i ≤ k 1 ≤ j , i ′ ≤ k 2 ≤ j ′ i\leq k_1\leq j, i'\leq k_2 \leq j' i≤k1≤j,i′≤k2≤j′。
此时,
f
i
,
j
+
f
i
′
,
j
′
≤
w
i
,
j
+
w
i
′
,
j
′
+
f
i
,
k
2
+
f
k
2
+
1
,
j
+
f
i
′
,
k
1
+
f
k
1
+
1
,
j
′
≤
w
i
,
j
′
+
w
i
′
,
j
+
f
i
,
k
2
+
f
k
2
+
1
,
j
+
f
i
′
,
k
1
+
f
k
1
+
1
,
j
′
≤
w
i
,
j
′
+
w
i
′
,
j
+
f
i
,
k
2
+
f
i
′
,
k
1
+
f
k
2
+
1
,
j
+
f
k
1
+
1
,
j
′
≤
w
i
,
j
′
+
w
i
′
,
j
+
f
i
,
k
2
+
f
i
′
,
k
1
+
f
k
1
+
1
,
j
+
f
k
2
+
1
,
j
′
≤
(
w
i
,
j
′
+
f
i
,
k
2
+
f
k
2
+
1
,
j
′
)
+
(
w
i
′
,
j
+
f
i
′
,
k
1
+
f
k
1
+
1
,
j
)
≤
f
i
,
j
′
+
f
i
′
,
j
\begin{aligned} f_{i,j}+f_{i',j'} &\leq w_{i,j} + w_{i',j'} + f_{i,k_2} + f_{k_2+1,j} + f_{i',k_1} + f_{k_1+1,j'}\\ &\leq w_{i,j'} +w_{i',j} + f_{i,k_2} + f_{k_2+1,j} + f_{i',k_1} + f_{k_1 + 1,j'}\\ &\leq w_{i,j'} +w_{i',j} + f_{i,k_2} + f_{i',k_1} + f_{k_2+1,j} + f_{k_1 + 1,j'}\\ &\leq w_{i,j'} +w_{i',j} + f_{i,k_2} + f_{i',k_1} + f_{k_1 + 1,j} + f_{k_2+1,j'}\\ &\leq (w_{i,j'} + f_{i,k_2} + f_{k_2+1,j'}) + (w_{i',j} + f_{i',k_1} + f_{k_1 + 1,j})\\ &\leq f_{i,j'}+f_{i',j} \end{aligned}
fi,j+fi′,j′≤wi,j+wi′,j′+fi,k2+fk2+1,j+fi′,k1+fk1+1,j′≤wi,j′+wi′,j+fi,k2+fk2+1,j+fi′,k1+fk1+1,j′≤wi,j′+wi′,j+fi,k2+fi′,k1+fk2+1,j+fk1+1,j′≤wi,j′+wi′,j+fi,k2+fi′,k1+fk1+1,j+fk2+1,j′≤(wi,j′+fi,k2+fk2+1,j′)+(wi′,j+fi′,k1+fk1+1,j)≤fi,j′+fi′,j
若 k 1 > k 2 k_1> k_2 k1>k2,因为 i ≤ k 1 ≤ j ′ , i ′ ≤ k 2 ≤ j i \leq k_1 \leq j', i' \leq k_2\leq j i≤k1≤j′,i′≤k2≤j,所以 i ′ ≤ k 2 < k 1 ≤ j ′ i'\leq k_2 < k_1 \leq j' i′≤k2<k1≤j′。
所以 i ′ ≤ k 1 ≤ j ′ , i ≤ k 2 ≤ j i'\leq k_1\leq j', i\leq k_2 \leq j i′≤k1≤j′,i≤k2≤j。
此时,
f
i
,
j
+
f
i
′
,
j
′
≤
w
i
,
j
+
w
i
′
,
j
′
+
f
i
,
k
1
+
f
k
1
+
1
,
j
+
f
i
′
,
k
2
+
f
k
2
+
1
,
j
′
≤
w
i
,
j
′
+
w
i
′
,
j
+
f
i
,
k
1
+
f
k
1
+
1
,
j
+
f
i
′
,
k
2
+
f
k
2
+
1
,
j
′
≤
w
i
,
j
′
+
w
i
′
,
j
+
f
i
,
k
1
+
f
i
′
,
k
2
+
f
k
1
+
1
,
j
+
f
k
2
+
1
,
j
′
≤
w
i
,
j
′
+
w
i
′
,
j
+
f
i
,
k
1
+
f
i
′
,
k
2
+
f
k
2
+
1
,
j
+
f
k
1
+
1
,
j
′
≤
(
w
i
,
j
′
+
f
i
,
k
1
+
f
k
1
+
1
,
j
′
)
+
(
w
i
′
,
j
+
f
i
′
,
k
2
+
f
k
2
+
1
,
j
)
≤
f
i
,
j
′
+
f
i
′
,
j
\begin{aligned} f_{i,j}+f_{i',j'} &\leq w_{i,j} + w_{i',j'} + f_{i,k_1} + f_{k_1+1,j} + f_{i',k_2} + f_{k_2+1,j'}\\ &\leq w_{i,j'} +w_{i',j} + f_{i,k_1} + f_{k_1+1,j} + f_{i',k_2} + f_{k_2 + 1,j'}\\ &\leq w_{i,j'} +w_{i',j} + f_{i,k_1} + f_{i',k_2} + f_{k_1+1,j} + f_{k_2 + 1,j'}\\ &\leq w_{i,j'} +w_{i',j} + f_{i,k_1} + f_{i',k_2} + f_{k_2 + 1,j} + f_{k_1 + 1,j'}\\ &\leq (w_{i,j'} + f_{i,k_1} + f_{k_1+1,j'}) + (w_{i',j} + f_{i',k_2} + f_{k_2 + 1,j})\\ &\leq f_{i,j'}+f_{i',j} \end{aligned}
fi,j+fi′,j′≤wi,j+wi′,j′+fi,k1+fk1+1,j+fi′,k2+fk2+1,j′≤wi,j′+wi′,j+fi,k1+fk1+1,j+fi′,k2+fk2+1,j′≤wi,j′+wi′,j+fi,k1+fi′,k2+fk1+1,j+fk2+1,j′≤wi,j′+wi′,j+fi,k1+fi′,k2+fk2+1,j+fk1+1,j′≤(wi,j′+fi,k1+fk1+1,j′)+(wi′,j+fi′,k2+fk2+1,j)≤fi,j′+fi′,j
综述,由数学归纳法可知, f i , j + f i ′ , j ′ ≤ f i , j ′ + f i ′ , j f_{i,j}+f_{i',j'}\leq f_{i,j'} + f_{i',j} fi,j+fi′,j′≤fi,j′+fi′,j。
根据 ①②③④,得,当 i ≤ i ′ ≤ j ≤ j ′ i\leq i' \leq j \leq j' i≤i′≤j≤j′ 时, f i , j + f i ′ , j ′ ≤ f i , j ′ + f i ′ , j f_{i,j}+f_{i',j'}\leq f_{i,j'} + f_{i',j} fi,j+fi′,j′≤fi,j′+fi′,j。
假设 k i , j = max i ≤ x ≤ j { x ∣ f i , j = w i , j + f i , x + f x + 1 , j } k_{i,j} = \max\limits_{i\leq x\leq j}\{x|f_{i,j}=w_{i,j}+f_{i,x}+f_{x+1,j}\} ki,j=i≤x≤jmax{x∣fi,j=wi,j+fi,x+fx+1,j}
则可以推出 k i , j k_{i,j} ki,j 单调
k i − 1 , j ≤ k i , j ≤ k i , j + 1 k_{i-1,j} \leq k_{i,j} \leq k_{i,j+1} ki−1,j≤ki,j≤ki,j+1
证明:
若 i > j i > j i>j,
k i − 1 , j = k i , j = k i , j + 1 = ∞ k_{i-1,j} = k_{i, j} = k_{i, j+1} = \infty ki−1,j=ki,j=ki,j+1=∞
若 i = j i = j i=j,
k i , j = 0 < ∞ = k i , j + 1 k i , j = 0 < ∞ = k i + 1 , j k_{i,j} = 0 < \infty = k_{i, j+1}\\k_{i,j}= 0<\infty = k_{i+1,j} ki,j=0<∞=ki,j+1ki,j=0<∞=ki+1,j
若 i < j i < j i<j,
我们假设 f i , j , k = w i , j + f i , k + f k + 1 , j f_{i,j,k} = w_{i,j} + f_{i,k} + f_{k + 1, j} fi,j,k=wi,j+fi,k+fk+1,j。
则 f i , j , k i , j = f i , j f_{i,j,k_{i,j}} = f_{i,j} fi,j,ki,j=fi,j
对于任意 k ≤ k ′ < j k\leq k' < j k≤k′<j,有
f k + 1 , j + f k ′ + 1 , j + 1 ≤ f k + 1 , j + 1 + f k ′ + 1 , j f_{k + 1, j} + f_{k' + 1,j+1} \leq f_{k + 1, j+1} + f_{k' + 1, j} fk+1,j+fk′+1,j+1≤fk+1,j+1+fk′+1,j
等式两边增加 w i , j + f i , k + w i , j + 1 + f i , k ′ w_{i,j} + f_{i,k} + w_{i,j + 1} + f_{i,k'} wi,j+fi,k+wi,j+1+fi,k′,得
w i , j + f i , k + w i , j + 1 + f i , k ′ + f k + 1 , j + f k ′ + 1 , j + 1 ≤ w i , j + f i , k + w i , j + 1 + f i , k ′ + f k + 1 , j + 1 + f k ′ + 1 , j w i , j + f i , k + f k + 1 , j + w i , j + 1 + f i , k ′ + f k ′ + 1 , j + 1 ≤ w i , j + 1 + f i , k + f k + 1 , j + 1 + w i , j + f i , k ′ + f k ′ + 1 , j f i , j , k + f i , j + 1 , k ′ ≤ f i , j + 1 , k + f i , j , k ′ f i , j , k − f i , j , k ′ ≤ f i , j + 1 , k − f i , j + 1 , k ′ \begin{aligned} w_{i,j} + f_{i,k} + w_{i,j + 1} + f_{i,k'} + f_{k + 1, j} + f_{k' + 1,j+1} &\leq w_{i,j} + f_{i,k} + w_{i,j + 1} + f_{i,k'} + f_{k + 1, j+1} + f_{k' + 1, j}\\ w_{i,j} + f_{i,k} + f_{k + 1, j} + w_{i,j + 1} + f_{i,k'} + f_{k' + 1,j+1} &\leq w_{i,j + 1} + f_{i,k} + f_{k + 1, j+1} + w_{i,j} + f_{i,k'} + f_{k' + 1, j}\\ f_{i,j,k} + f_{i,j+1,k'} &\leq f_{i,j + 1,k} + f_{i,j,k'}\\ f_{i,j,k} - f_{i,j,k'} &\leq f_{i,j+1,k} - f_{i,j+1,k'}\end{aligned} wi,j+fi,k+wi,j+1+fi,k′+fk+1,j+fk′+1,j+1wi,j+fi,k+fk+1,j+wi,j+1+fi,k′+fk′+1,j+1fi,j,k+fi,j+1,k′fi,j,k−fi,j,k′≤wi,j+fi,k+wi,j+1+fi,k′+fk+1,j+1+fk′+1,j≤wi,j+1+fi,k+fk+1,j+1+wi,j+fi,k′+fk′+1,j≤fi,j+1,k+fi,j,k′≤fi,j+1,k−fi,j+1,k′
所以,
f
i
,
j
,
k
′
≤
f
i
,
j
,
k
f_{i,j,k'} \leq f_{i,j,k}
fi,j,k′≤fi,j,k 可以推出
f
i
,
j
+
1
,
k
′
≤
f
i
,
j
+
1
,
k
f_{i,j+1,k'} \leq f_{i,j+1,k}
fi,j+1,k′≤fi,j+1,k,即:
f
i
,
j
,
k
′
≤
f
i
,
j
,
k
→
f
i
,
j
+
1
,
k
′
≤
f
i
,
j
+
1
,
k
f_{i,j,k'} \leq f_{i,j,k} \to f_{i,j+1,k'} \leq f_{i,j+1,k}
fi,j,k′≤fi,j,k→fi,j+1,k′≤fi,j+1,k
对于所有 k < k i , j k < k_{i,j} k<ki,j,都有 f i , j , k i , j = f i , j ≤ f i , j , k f_{i,j,k_{i,j}} = f_{i,j} \leq f_{i,j,k} fi,j,ki,j=fi,j≤fi,j,k。
则对于所有 k < k i , j k< k_{i,j} k<ki,j,有 f i , j + 1 , k i , j ≤ f i , j + 1 , k f_{i,j+1,k_{i,j}} \leq f_{i,j+1,k} fi,j+1,ki,j≤fi,j+1,k。
所以 k i , j ≤ k i , j + 1 k_{i,j} \leq k_{i,j+1} ki,j≤ki,j+1
对于任意 i < k ≤ k ′ i < k\leq k' i<k≤k′,有
f i , k + f i + 1 , k ′ ≤ f i , k ′ + f i + 1 , k f_{i, k} + f_{i + 1, k'} \leq f_{i, k'} + f_{i + 1, k} fi,k+fi+1,k′≤fi,k′+fi+1,k
等式两边增加 w i , j + f k + 1 , j + w i + 1 , j + f k ′ + 1 , j w_{i,j} + f_{k+1,j} + w_{i+1,j} + f_{k' + 1, j} wi,j+fk+1,j+wi+1,j+fk′+1,j,得
w i , j + f k + 1 , j + w i + 1 , j + f k ′ + 1 , j + f i , k + f i + 1 , k ′ ≤ w i , j + f k + 1 , j + w i + 1 , j + f k ′ + 1 , j + f i , k ′ + f i + 1 , k w i , j + f i , k + f k + 1 , j + w i + 1 , j + f i + 1 , k ′ + f k ′ + 1 , j ≤ w i , j + f i , k ′ + f k ′ + 1 , j + w i + 1 , j + f i + 1 , k + f k + 1 , j f i , j , k + f i + 1 , j , k ′ ≤ f i , j , k ′ + f i + 1 , j , k f i , j , k − f i , j , k ′ ≤ f i + 1 , j , k − f i + 1 , j , k ′ \begin{aligned} w_{i,j} + f_{k+1,j} + w_{i+1,j} + f_{k' + 1, j} + f_{i, k} + f_{i + 1, k'} &\leq w_{i,j} + f_{k+1,j} + w_{i+1,j} + f_{k' + 1, j} + f_{i, k'} + f_{i + 1, k}\\ w_{i,j} + f_{i, k} + f_{k+1,j} + w_{i+1,j} + f_{i + 1, k'} + f_{k' + 1, j} &\leq w_{i,j} + f_{i, k'} + f_{k' + 1, j} + w_{i+1,j} + f_{i + 1, k} + f_{k+1,j}\\ f_{i,j,k} + f_{i+1,j,k'} &\leq f_{i,j,k'} + f_{i+1,j,k}\\ f_{i,j,k} - f_{i,j,k'} &\leq f_{i+1,j,k} - f_{i+1,j,k'}\end{aligned} wi,j+fk+1,j+wi+1,j+fk′+1,j+fi,k+fi+1,k′wi,j+fi,k+fk+1,j+wi+1,j+fi+1,k′+fk′+1,jfi,j,k+fi+1,j,k′fi,j,k−fi,j,k′≤wi,j+fk+1,j+wi+1,j+fk′+1,j+fi,k′+fi+1,k≤wi,j+fi,k′+fk′+1,j+wi+1,j+fi+1,k+fk+1,j≤fi,j,k′+fi+1,j,k≤fi+1,j,k−fi+1,j,k′
所以,
f
i
,
j
,
k
′
≤
f
i
,
j
,
k
f_{i,j,k'} \leq f_{i,j,k}
fi,j,k′≤fi,j,k 可以推出
f
i
+
1
,
j
,
k
′
≤
f
i
+
1
,
j
,
k
f_{i+1,j,k'} \leq f_{i+1,j,k}
fi+1,j,k′≤fi+1,j,k,即:
f
i
,
j
,
k
′
≤
f
i
,
j
,
k
→
f
i
+
1
,
j
,
k
′
≤
f
i
+
1
,
j
,
k
f_{i,j,k'} \leq f_{i,j,k} \to f_{i+1,j,k'} \leq f_{i+1,j,k}
fi,j,k′≤fi,j,k→fi+1,j,k′≤fi+1,j,k
对于所有 k < k i , j k < k_{i,j} k<ki,j,都有 f i , j , s i , j = f i , j ≤ f i , j , k f_{i,j,s_{i,j}} = f_{i,j} \leq f_{i,j,k} fi,j,si,j=fi,j≤fi,j,k。
则对于所有 k < k i , j k< k_{i,j} k<ki,j,有 f i , j + 1 , s i , j ≤ f i + 1 , j , k f_{i,j+1,s_{i,j}} \leq f_{i+1,j,k} fi,j+1,si,j≤fi+1,j,k。
所以 k i , j ≤ k i + 1 , j k_{i,j} \leq k_{i+1,j} ki,j≤ki+1,j
综述, k i − 1 , j ≤ k i , j ≤ k i , j + 1 k_{i-1,j} \leq k_{i,j} \leq k_{i,j+1} ki−1,j≤ki,j≤ki,j+1
所以, k i , j − 1 ≤ k i , j ≤ k i + 1 , j k_{i,j-1} \leq k_{i,j} \leq k_{i+1,j} ki,j−1≤ki,j≤ki+1,j
所以 f i , j f_{i,j} fi,j 转移方程可以转换为
f i , j = { min k i , j − 1 ≤ k < k i + 1 , j { x ∣ x = w i , j + f i , k + f k + 1 , j } i < j 0 i = j ∞ i > j f_{i,j}=\begin{cases} \min\limits_{k_{i,j-1}\leq k< k_{i+1,j}}\{x|x=w_{i,j}+f_{i,k}+f_{k+1,j}\}&i<j\\ 0&i=j\\ \infty&i>j\end{cases} fi,j=⎩ ⎨ ⎧ki,j−1≤k<ki+1,jmin{x∣x=wi,j+fi,k+fk+1,j}0∞i<ji=ji>j
我们缩小了 k k k 的范围,从而缩小的计算量。
最终时间复杂度为 O ( n 2 ) O(n^2) O(n2)(原时间复杂度为 O ( n 3 ) O(n^3) O(n3))