*下文中“优于”一般指的是“不劣于”,请自行分辨。
四边形不等式定义为:
位于整数集合上的二元函数 f ( x , y ) f(x,y) f(x,y),对于 a ≤ b ≤ c ≤ d a\leq b\leq c\leq d a≤b≤c≤d,若满足: f ( a , c ) + f ( b , d ) ≤ f ( a , d ) + f ( b , c ) f(a,c)+f(b,d)\leq f(a,d)+f(b,c) f(a,c)+f(b,d)≤f(a,d)+f(b,c),即相交和小于包含和,则称函数 f f f满足四边形不等式。
函数 f f f若满足 f ( a , c ) + f ( b , d ) ≤ f ( a , d ) + f ( b , c ) f(a,c)+f(b,d)\leq f(a,d)+f(b,c) f(a,c)+f(b,d)≤f(a,d)+f(b,c),即相交和大于包含和,则亦称函数 f f f满足四边形不等式。
在动态规划问题中,四边形不等式指的是相交优于包含(可能是大于,也可能是小于),因为相交优于包含能够推出决策单调性。接下来讨论相交小于包含。
四边形不等式具有两种等价的定义:
下面是证明。
接下来展示一种用来推式子的方法。主要思想就是根据条件列出一个不等式,然后把结论写成另一个不等式。通过对比发现从条件到结论差了什么,然后把差的那部分还原出来。
我们证明一下从2推出1,记 f ( x , y ) = f x , y f(x,y)=f_{x,y} f(x,y)=fx,y:
首先我们归纳,假设对于所有的长度小于 j − i + 2 j-i+2 j−i+2的区间都满足“从2可以推出1”的结论:
我们已知 f i , j + f i + 1 , j + 1 ≤ f i , j + 1 + f i + 1 , j ① f_{i,j}+f_{i+1,j+1}\leq f_{i,j+1}+f_{i+1,j}\;① fi,j+fi+1,j+1≤fi,j+1+fi+1,j①
要证明 f i , c + f b , j + 1 ≤ f i , j + 1 + f b , c ( i ≤ b ≤ c ≤ j + 1 ) f_{i,c}+f_{b,j+1}\leq f_{i,j+1}+f_{b,c}(i\leq b\leq c\leq j+1) fi,c+fb,j+1≤fi,j+1+fb,c(i≤b≤c≤j+1)
现在我们设法让式子中的 i + 1 i+1 i+1变为 i + 2 i+2 i+2:
f i , j + f i + 2 , j + 1 ≤ f i , j + 1 + f i + 2 , j ② f_{i,j}+f_{i+2,j+1}\leq f_{i,j+1}+f_{i+2,j}\;② fi,j+fi+2,j+1≤fi,j+1+fi+2,j②
然后我们对比一下条件①和要证明的式子②:
① : f i , j + f i + 1 , j + 1 ≤ f i , j + 1 + f i + 1 , j ①:f_{i,j}+\textcolor{red}{f_{i+1,j+1}}\leq f_{i,j+1}+\textcolor{red}{f_{i+1,j}} ①:fi,j+fi+1,j+1≤fi,j+1+fi+1,j
② : f i , j + f i + 2 , j + 1 ≤ f i , j + 1 + f i + 2 , j ②:f_{i,j}+\textcolor{blue}{f_{i+2,j+1}}\leq f_{i,j+1}+\textcolor{blue}{f_{i+2,j}} ②:fi,j+fi+2,j+1≤fi,j+1+fi+2,j
两式有一些项是相同的,有一些项是不同的,不同的项用颜色标出来了。我们假设有一个不等式 T T T,使得 ① + T = ② ①+T=② ①+T=②,现在我们试图还原出 T T T来:
① : f i , j + f i + 1 , j + 1 ≤ f i , j + 1 + f i + 1 , j ①:f_{i,j}+\textcolor{red}{f_{i+1,j+1}}\leq f_{i,j+1}+\textcolor{red}{f_{i+1,j}} ①:fi,j+fi+1,j+1≤fi,j+1+fi+1,j
T : ? ≤ ? T\;:\hspace{2cm}?\leq \;? T:?≤?
② : f i , j + f i + 2 , j + 1 ≤ f i , j + 1 + f i + 2 , j ②:f_{i,j}+\textcolor{blue}{f_{i+2,j+1}}\leq f_{i,j+1}+\textcolor{blue}{f_{i+2,j}} ②:fi,j+fi+2,j+1≤fi,j+1+fi+2,j
可以看到相同的项同时在①、②式中出现,因此在 T T T中不需要管他们。
蓝色的项在②式中出现,而在①式中没有,因此应该在 T T T中被加上去,所以我们把蓝色的项写到 T T T不等号的对应侧:
① : f i , j + f i + 1 , j + 1 ≤ f i , j + 1 + f i + 1 , j ①:f_{i,j}+\textcolor{red}{f_{i+1,j+1}}\leq f_{i,j+1}+\textcolor{red}{f_{i+1,j}} ①:fi,j+fi+1,j+1≤fi,j+1+fi+1,j
T : ? + f i + 2 , j + 1 ≤ ? + f i + 2 , j T\;:\hspace{0.45cm}?+\textcolor{blue}{f_{i+2,j+1}}\leq \hspace{0.725cm}?+\textcolor{blue}{f_{i+2,j}} T:?+fi+2,j+1≤?+fi+2,j
② : f i , j + f i + 2 , j + 1 ≤ f i , j + 1 + f i + 2 , j ②:f_{i,j}+\textcolor{blue}{f_{i+2,j+1}}\leq f_{i,j+1}+\textcolor{blue}{f_{i+2,j}} ②:fi,j+fi+2,j+1≤fi,j+1+fi+2,j
可以看到红色的项原来在①中出现了,但是在②中消失了,这说明它们在 T T T中被减去了一次,也就是说带有负一的系数:
① : f i , j + f i + 1 , j + 1 ≤ f i , j + 1 + f i + 1 , j ①:f_{i,j}\hspace{0.895cm}+\textcolor{red}{f_{i+1,j+1}}\leq f_{i,j+1}+\textcolor{red}{f_{i+1,j}} ①:fi,j+fi+1,j+1≤fi,j+1+fi+1,j
T : − f i + 1 , j + 1 + f i + 2 , j + 1 ≤ − f i + 1 , j + f i + 2 , j T\;:\textcolor{red}{-f_{i+1,j+1}}+\textcolor{blue}{f_{i+2,j+1}}\leq \textcolor{red}{-f_{i+1,j}}+\textcolor{blue}{f_{i+2,j}} T:−fi+1,j+1+fi+2,j+1≤−fi+1,j+fi+2,j
② : f i , j + f i + 2 , j + 1 ≤ f i , j + 1 + f i + 2 , j ②:f_{i,j}\hspace{0.895cm}+\textcolor{blue}{f_{i+2,j+1}}\leq f_{i,j+1}+\textcolor{blue}{f_{i+2,j}} ②:fi,j+fi+2,j+1≤fi,j+1+fi+2,j
整理一下 T T T:
T : f i + 2 , j + 1 + f i + 1 , j ≤ f i + 2 , j + f i + 1 , j + 1 T:f_{i+2,j+1}+f_{i+1,j}\leq f_{i+2,j}+f_{i+1,j+1} T:fi+2,j+1+fi+1,j≤fi+2,j+fi+1,j+1
这恰好就是区间长度为 j − i + 1 j-i+1 j−i+1的四边形不等式,因此 ① + T = ② ①+T=② ①+T=②,则②式得证。
至此,我们已经可以仿照刚才的证明,将四边形不等式内部的两个端点向内移动1的长度任意次,因此我们已经证明了 f i , c + f b , j + 1 ≤ f i , j + 1 + f b , c ( i ≤ b ≤ c ≤ j + 1 ) f_{i,c}+f_{b,j+1}\leq f_{i,j+1}+f_{b,c}(i\leq b\leq c\leq j+1) fi,c+fb,j+1≤fi,j+1+fb,c(i≤b≤c≤j+1)
QED.
这篇文章只涉及简单四边形不等式优化dp,因此最优决策点都是枚举的。
设 a i a_i ai表示第 i i i堆石子的大小。
首先破环为链,然后区间dp:
设状态函数 f i , j f_{i,j} fi,j为区间 [ i , j ] [i,j] [i,j]对应的石子合并成一堆的最小贡献, s s s表示石子的前缀和。
则: f i , j = min k = i j { f i , k + f k + 1 , j } + s j − s i − 1 f_{i,j}=\overset{j}{\underset{k=i}{\min}}\left\{f_{i,k}+f_{k+1,j}\right\}+s_j-s_{i-1} fi,j=k=iminj{fi,k+fk+1,j}+sj−si−1
这里其实 k k k应该枚举到 j − 1 j-1 j−1就停止的,那我们拓展一下状态,令 f x + 1 , x = − ∞ f_{x+1,x}=-\infty fx+1,x=−∞
暴力区间dp是 O ( n 3 ) O(n^3) O(n3)的:
for(int len=2;len<=n;len++){ 区间长度
for(int i=1,j;(j=i+len-1)<=2*n;i++){ 区间端点
for(int k=i;k<j;k++){ 区间分割点
f[i][j]=min(f[i][j],f[i][k]+f[k+1][j]+s[j]-s[i-1]);
}
}
}
可以优化到 O ( n 2 ) O(n^2) O(n2):
for(int len=2; len<=n; len++){ 区间长度
for(int i=1,j; (j=i+len-1)<=2*n; i++){ 区间端点
for(int k=p[i][j-1]; k<=p[i+1][j]; k++){ 区间分割点
if(f[i][j]>f[i][k]+f[k+1][j]+s[j]-s[i-1]) 决策单调性优化dp
f[i][j]=f[i][k]+f[k+1][j]+s[j]-s[i-1], p[i][j]=k;
}
}
}
大概的意思是说设 p i , j p_{i,j} pi,j表示 f i , j f_{i,j} fi,j的最优决策点,则 p i , j − 1 ≤ p i , j ≤ p i + 1 , j p_{i,j-1}\leq p_{i,j}\leq p_{i+1,j} pi,j−1≤pi,j≤pi+1,j,我们通过把枚举决策点的区间缩小,减小了复杂度。
接下来用四步我们来看看这个过程:
对于: f i , j = min k = i j { f i , k + f k + 1 , j } + s j − s i − 1 f_{i,j}=\overset{j}{\underset{k=i}{\min}}\left\{f_{i,k}+f_{k+1,j}\right\}+s_j-s_{i-1} fi,j=k=iminj{fi,k+fk+1,j}+sj−si−1
我们定义贡献函数 w i , j = s j − s i − 1 ( w i , i 除外 ) w_{i,j}=s_j-s_{i-1}(w_{i,i}除外) wi,j=sj−si−1(wi,i除外),也就是说:
f i , j = min k = i j { f i , k + f k + 1 , j } + w i , j f_{i,j}=\overset{j}{\underset{k=i}{\min}}\left\{f_{i,k}+f_{k+1,j}\right\}+w_{i,j} fi,j=k=iminj{fi,k+fk+1,j}+wi,j
其中 f i , i = 0 , w i , i = 0 f_{i,i}=0,w_{i,i}=0 fi,i=0,wi,i=0
接下来证明 w w w满足四边形不等式:
w i , j + w i + 1 , j + 1 ≤ w i , j + 1 + w i + 1 , j w_{i,j}+w_{i+1,j+1}\leq w_{i,j+1}+w_{i+1,j} wi,j+wi+1,j+1≤wi,j+1+wi+1,j
即: s j − s i − 1 + s j + 1 − s i ≤ s j + 1 − s i − 1 + s j − s i s_j-s_{i-1}+s_{j+1}-s_i\leq s_{j+1}-s_{i-1}+s_j-s_i sj−si−1+sj+1−si≤sj+1−si−1+sj−si
左右两边直接相等了,所以肯定满足四边形不等式…
事实上,显然贡献函数还满足区间包含单调性:
w x , y ≤ w i , j ( [ x , y ] ⊆ [ i , j ] ) w_{x,y}\leq w_{i,j} ([x,y]\subseteq[i,j]) wx,y≤wi,j([x,y]⊆[i,j])
设 f i , j = ∑ k = 1 j − i w x k , y k f_{i,j}=\overset{j-i}{\underset{k=1}\sum}w_{x_k,y_k} fi,j=k=1∑j−iwxk,yk,则满足 [ x k , y k ] ⊆ [ i , j ] [x_k,y_k]\subseteq[i,j] [xk,yk]⊆[i,j]
证明:
初始状态中,区间 [ i , j ] [i,j] [i,j]中有 j − i + 1 j-i+1 j−i+1堆石子,每进行一次操作就会减少一堆石子,同时给 f i , j f_{i,j} fi,j增加一个 w x , y w_{x,y} wx,y,其中 [ x , y ] ⊆ [ i , j ] [x,y]\subseteq[i,j] [x,y]⊆[i,j],总共最后合并到只有一堆石子,总共合并了 j − i j-i j−i次,因此状态函数贡献了 j − i j-i j−i个,证毕。
f i , j ≤ ( j − i ) ⋅ w i , j f_{i,j}\leq (j-i)\cdot w_{i,j} fi,j≤(j−i)⋅wi,j
证明:
因为: w x k , y k ≤ w i , j w_{x_k,y_k}\leq w_{i,j} wxk,yk≤wi,j
所以: f i , j = ∑ k = 1 j − i w x k , y k ≤ ( j − i ) ⋅ w i , j f_{i,j}=\overset{j-i}{\underset{k=1}\sum}w_{x_k,y_k}\leq (j-i)\cdot w_{i,j} fi,j=k=1∑j−iwxk,yk≤(j−i)⋅wi,j
证明 f i , j + f i + 1 , j + 1 ≤ f i , j + 1 + f i + 1 , j f_{i,j}+f_{i+1,j+1}\leq f_{i,j+1}+f_{i+1,j} fi,j+fi+1,j+1≤fi,j+1+fi+1,j:
首先归纳一下,假设对于所有区间长度小于 j − i + 2 j-i+2 j−i+2的区间都满足状态函数上的四边形不等式。
然后我们设 f i , j + 1 f_{i,j+1} fi,j+1的最优决策点为 x x x。
f i , j + 1 = f i , x + f x + 1 , j + 1 + w i , j + 1 \textcolor{blue}{f_{i,j+1}}=f_{i,x}+f_{x+1,j+1}+w_{i,j+1} fi,j+1=fi,x+fx+1,j+1+wi,j+1
我们知道 f i , j f_{i,j} fi,j的最优决策点不一定为 x x x,因此有不等式:
f i , j ≤ f i , x + f x + 1 , j + w i , j \textcolor{red}{f_{i,j}}\leq f_{i,x}+f_{x+1,j}+w_{i,j} fi,j≤fi,x+fx+1,j+wi,j
同理,我们设 f i + 1 , j f_{i+1,j} fi+1,j为 y y y,则: f i + 1 , j = f i + 1 , y + f y + 1 , j + w i + 1 , j \textcolor{blue}{f_{i+1,j}}=f_{i+1,y}+f_{y+1,j}+w_{i+1,j} fi+1,j=fi+1,y+fy+1,j+wi+1,j
考虑 f i + 1 , j + 1 f_{i+1,j+1} fi+1,j+1的最优决策点不一定为 y y y,就得到: f i + 1 , j + 1 ≤ f i + 1 , y + f y + 1 , j + 1 + w i + 1 , j + 1 \textcolor{red}{f_{i+1,j+1}}\leq f_{i+1,y}+f_{y+1,j+1}+w_{i+1,j+1} fi+1,j+1≤fi+1,y+fy+1,j+1+wi+1,j+1
为了凑出 f i , j + f i + 1 , j + 1 ≤ f i , j + 1 + f i + 1 , j {\color{red}f_{i,j}+f_{i+1,j+1}}\leq \color{blue}f_{i,j+1}+f_{i+1,j} fi,j+fi+1,j+1≤fi,j+1+fi+1,j,我们需要把刚才的四个式子加起来(注意等式相加的方向):
f i , j + f i + 1 , j + 1 + f x + 1 , j + 1 + f y + 1 , j + w i , j + 1 + w i + 1 , j ≤ f i , j + 1 + f i + 1 , j + f x + 1 , j + f y + 1 , j + 1 + w i , j + w i + 1 , j + 1 \textcolor{red}{f_{i,j}+f_{i+1,j+1}}+f_{x+1,j+1}+f_{y+1,j}+w_{i,j+1}+w_{i+1,j}\leq \textcolor{blue}{f_{i,j+1}+f_{i+1,j}}+f_{x+1,j}+f_{y+1,j+1}+w_{i,j}+w_{i+1,j+1} fi,j+fi+1,j+1+fx+1,j+1+fy+1,j+wi,j+1+wi+1,j≤fi,j+1+fi+1,j+fx+1,j+fy+1,j+1+wi,j+wi+1,j+1
因此现在距离要证明的结论已经相当接近了,要想办法约掉剩余的几项。
先看到贡献函数 w w w:
f i , j + f i + 1 , j + 1 + f x + 1 , j + 1 + f y + 1 , j + w i , j + 1 + w i + 1 , j ≤ f i , j + 1 + f i + 1 , j + f x + 1 , j + f y + 1 , j + 1 + w i , j + w i + 1 , j + 1 f_{i,j}+f_{i+1,j+1}+f_{x+1,j+1}+f_{y+1,j}+\textcolor{red}{w_{i,j+1}+w_{i+1,j}}\leq f_{i,j+1}+f_{i+1,j}+f_{x+1,j}+f_{y+1,j+1}+\textcolor{green}{w_{i,j}+w_{i+1,j+1}} fi,j+fi+1,j+1+fx+1,j+1+fy+1,j+wi,j+1+wi+1,j≤fi,j+1+fi+1,j+fx+1,j+fy+1,j+1+wi,j+wi+1,j+1
可以对左边用四边形不等式 w i , j + w i + 1 , j + 1 ≤ w i , j + 1 + w i + 1 , j \textcolor{blue}{w_{i,j}+w_{i+1,j+1}}\leq \textcolor{red}{w_{i,j+1}+w_{i+1,j}} wi,j+wi+1,j+1≤wi,j+1+wi+1,j(也可以对右边用):
f i , j + f i + 1 , j + 1 + f x + 1 , j + 1 + f y + 1 , j + w i , j + w i + 1 , j + 1 ≤ f i , j + f i + 1 , j + 1 + f x + 1 , j + 1 + f y + 1 , j + w i , j + 1 + w i + 1 , j ≤ f i , j + 1 + f i + 1 , j + f x + 1 , j + f y + 1 , j + 1 + w i , j + w i + 1 , j + 1 f_{i,j}+f_{i+1,j+1}+f_{x+1,j+1}+f_{y+1,j}+\textcolor{blue}{w_{i,j}+w_{i+1,j+1}}\leq f_{i,j}+f_{i+1,j+1}+f_{x+1,j+1}+f_{y+1,j}+\textcolor{red}{w_{i,j+1}+w_{i+1,j}}\leq\\ f_{i,j+1}+f_{i+1,j}+f_{x+1,j}+f_{y+1,j+1}+\textcolor{green}{w_{i,j}+w_{i+1,j+1}} fi,j+fi+1,j+1+fx+1,j+1+fy+1,j+wi,j+wi+1,j+1≤fi,j+fi+1,j+1+fx+1,j+1+fy+1,j+wi,j+1+wi+1,j≤fi,j+1+fi+1,j+fx+1,j+fy+1,j+1+wi,j+wi+1,j+1
然后我们研究左右那两项:
f i , j + f i + 1 , j + 1 + f x + 1 , j + 1 + f y + 1 , j + w i , j + w i + 1 , j + 1 ≤ f i , j + 1 + f i + 1 , j + f x + 1 , j + f y + 1 , j + 1 + w i , j + w i + 1 , j + 1 f_{i,j}+f_{i+1,j+1}+f_{x+1,j+1}+f_{y+1,j}+\textcolor{blue}{w_{i,j}+w_{i+1,j+1}}\leq f_{i,j+1}+f_{i+1,j}+f_{x+1,j}+f_{y+1,j+1}+\textcolor{green}{w_{i,j}+w_{i+1,j+1}} fi,j+fi+1,j+1+fx+1,j+1+fy+1,j+wi,j+wi+1,j+1≤fi,j+1+fi+1,j+fx+1,j+fy+1,j+1+wi,j+wi+1,j+1
就把贡献函数约掉了:
f i , j + f i + 1 , j + 1 + f x + 1 , j + 1 + f y + 1 , j ≤ f i , j + 1 + f i + 1 , j + f x + 1 , j + f y + 1 , j + 1 f_{i,j}+f_{i+1,j+1}+f_{x+1,j+1}+f_{y+1,j}\leq f_{i,j+1}+f_{i+1,j}+f_{x+1,j}+f_{y+1,j+1} fi,j+fi+1,j+1+fx+1,j+1+fy+1,j≤fi,j+1+fi+1,j+fx+1,j+fy+1,j+1
现在我们来研究多余的那四项状态函数:
f i , j + f i + 1 , j + 1 + f x + 1 , j + 1 + f y + 1 , j ≤ f i , j + 1 + f i + 1 , j + f x + 1 , j + f y + 1 , j + 1 f_{i,j}+f_{i+1,j+1}+\textcolor{blue}{f_{x+1,j+1}+f_{y+1,j}}\leq f_{i,j+1}+f_{i+1,j}+\textcolor{red}{f_{x+1,j}+f_{y+1,j+1}} fi,j+fi+1,j+1+fx+1,j+1+fy+1,j≤fi,j+1+fi+1,j+fx+1,j+fy+1,j+1
若 x ≤ y x\leq y x≤y,则红色两项不交,蓝色的两项则是包含关系,就会有 f x + 1 , j + f y + 1 , j + 1 ≤ f x + 1 , j + 1 + f y + 1 , j \color{blue} f_{x+1,j}+f_{y+1,j+1}\leq f_{x+1,j+1}+f_{y+1,j} fx+1,j+fy+1,j+1≤fx+1,j+1+fy+1,j,因此就会有:
f i , j + f i + 1 , j + 1 + f x + 1 , j + f y + 1 , j + 1 ≤ f i , j + f i + 1 , j + 1 + f x + 1 , j + 1 + f y + 1 , j ≤ f i , j + 1 + f i + 1 , j + f x + 1 , j + f y + 1 , j + 1 f_{i,j}+f_{i+1,j+1}+\textcolor{blue}{f_{x+1,j}+f_{y+1,j+1}}\leq f_{i,j}+f_{i+1,j+1}+\textcolor{blue}{f_{x+1,j+1}+f_{y+1,j}}\leq f_{i,j+1}+f_{i+1,j}+\textcolor{red}{f_{x+1,j}+f_{y+1,j+1}} fi,j+fi+1,j+1+fx+1,j+fy+1,j+1≤fi,j+fi+1,j+1+fx+1,j+1+fy+1,j≤fi,j+1+fi+1,j+fx+1,j+fy+1,j+1
去掉中间那个式子: f i , j + f i + 1 , j + 1 + f x , j + f y + 1 , j + 1 ≤ f i , j + 1 + f i + 1 , j + f x + 1 , j + f y + 1 , j + 1 f_{i,j}+f_{i+1,j+1}+\textcolor{blue}{f_{x,j}+f_{y+1,j+1}}\leq f_{i,j+1}+f_{i+1,j}+\textcolor{red}{f_{x+1,j}+f_{y+1,j+1}} fi,j+fi+1,j+1+fx,j+fy+1,j+1≤fi,j+1+fi+1,j+fx+1,j+fy+1,j+1
若 x > y x>y x>y,则蓝色两项不交,红色两项则是相交关系,就会有 f x + 1 , j + f y + 1 , j + 1 ≤ f x + 1 , j + 1 + f y + 1 , j \color{red}f_{x+1,j}+f_{y+1,j+1}\leq f_{x+1,j+1}+f_{y+1,j} fx+1,j+fy+1,j+1≤fx+1,j+1+fy+1,j,因此就会有:
f i , j + f i + 1 , j + 1 + f x + 1 , j + 1 + f y + 1 , j ≤ f i , j + 1 + f i + 1 , j + f x + 1 , j + f y + 1 , j + 1 ≤ f i , j + 1 + f i + 1 , j + f x + 1 , j + 1 + f y + 1 , j f_{i,j}+f_{i+1,j+1}+\textcolor{blue}{f_{x+1,j+1}+f_{y+1,j}}\leq f_{i,j+1}+f_{i+1,j}+\textcolor{red}{f_{x+1,j}+f_{y+1,j+1}}\leq f_{i,j+1}+f_{i+1,j}+\textcolor{red}{f_{x+1,j+1}+f_{y+1,j}} fi,j+fi+1,j+1+fx+1,j+1+fy+1,j≤fi,j+1+fi+1,j+fx+1,j+fy+1,j+1≤fi,j+1+fi+1,j+fx+1,j+1+fy+1,j
去掉中间那个式子:
f i , j + f i + 1 , j + 1 + f x + 1 , j + 1 + f y + 1 , j ≤ f i , j + 1 + f i + 1 , j + f x + 1 , j + 1 + f y + 1 , j f_{i,j}+f_{i+1,j+1}+\textcolor{blue}{f_{x+1,j+1}+f_{y+1,j}}\leq f_{i,j+1}+f_{i+1,j}+\textcolor{red}{f_{x+1,j+1}+f_{y+1,j}} fi,j+fi+1,j+1+fx+1,j+1+fy+1,j≤fi,j+1+fi+1,j+fx+1,j+1+fy+1,j
可以看出无论那种情况,红蓝两项都抵消了,因此得证。
(一些什么边界情况就不考虑的了,反正显然)
后记:
设 p i , j p_{i,j} pi,j表示 f i , j f_{i,j} fi,j的其中一个最优决策点。
决策单调性指的是, ∀ p i , j − 1 , p i + 1 , j : ∃ p i , j 满足 p i , j − 1 ≤ p i , j ≤ p i + 1 , j \forall p_{i,j-1},p_{i+1,j}:\exists p_{i,j}满足 p_{i,j-1}\leq p_{i,j}\leq p_{i+1,j} ∀pi,j−1,pi+1,j:∃pi,j满足pi,j−1≤pi,j≤pi+1,j
先证明左半部分:
p i , j − 1 ≤ p i , j p_{i,j-1}\leq p_{i,j} pi,j−1≤pi,j,设 k = p i , j − 1 , p = p i , j k=p_{i,j-1},p=p_{i,j} k=pi,j−1,p=pi,j,则我们反证,设 p < k p
一开始可以认为我们的条件有四个式子:
{ ① : f i , j = f i , p + f p + 1 , j + w i , j ② : f i , j − 1 = f i , k + f k + 1 , j − 1 + w i , j − 1 ③ : f i , j ≤ f i , k + f k + 1 , j + w i , j ④ : f i , j − 1 ≤ f i , p + f p + 1 , j − 1 + w i , j − 1 \left\{\begin{matrix} ①:f_{i,j}=f_{i,p}+f_{p+1,j}+w_{i,j}\hspace{1cm}\\ ②:f_{i,j-1}=f_{i,k}+f_{k+1,j-1}+w_{i,j-1}\\ ③:f_{i,j}\leq f_{i,k}+f_{k+1,j}+w_{i,j}\hspace{0.9cm}\\ ④:f_{i,j-1}\leq f_{i,p}+f_{p+1,j-1}+w_{i,j-1}\hspace{0.0cm} \end{matrix}\right. ⎩ ⎨ ⎧①:fi,j=fi,p+fp+1,j+wi,j②:fi,j−1=fi,k+fk+1,j−1+wi,j−1③:fi,j≤fi,k+fk+1,j+wi,j④:fi,j−1≤fi,p+fp+1,j−1+wi,j−1
然后我们为了导出矛盾,可能会有两个式子:
{ A : f i , j − 1 > f i , p + f p + 1 , j − 1 + w i , j − 1 B : f i , j ≥ f i , k + f k + 1 , j + w i , j \left\{\begin{matrix} A:f_{i,j-1}> f_{i,p}+f_{p+1,j-1}+w_{i,j-1}\\ B:f_{i,j}\geq f_{i,k}+f_{k+1,j}+w_{i,j}\hspace{0.9cm} \end{matrix}\right. {A:fi,j−1>fi,p+fp+1,j−1+wi,j−1B:fi,j≥fi,k+fk+1,j+wi,j
其中 A A A矛盾叫做:“ k k k不是 f i , j − 1 f_{i,j-1} fi,j−1的最优决策点”。(注意,这里如果证明 p p p与 k k k对于 f i , j − 1 f_{i,j-1} fi,j−1一样优并不能导出矛盾,因为最优决策点并不一定唯一)
其中 B B B矛盾叫做:“ k k k也是 f i , j f_{i,j} fi,j的最优决策点”。(因为综合条件③和 B B B能够知道, f i , j = f i , k + f k + 1 , j + w i , j f_{i,j}=f_{i,k}+f_{k+1,j}+w_{i,j} fi,j=fi,k+fk+1,j+wi,j,说明 k k k也是 f i , j f_{i,j} fi,j的最优决策点)
条件中没有大于号,很显然结论 B B B更容易推导。
一种平凡的证法:
已知: { ① : f i , j = f i , p + f p + 1 , j + w i , j ② : f i , j − 1 = f i , k + f k + 1 , j − 1 + w i , j − 1 ③ : f i , j ≤ f i , k + f k + 1 , j + w i , j ④ : f i , j − 1 ≤ f i , p + f p + 1 , j − 1 + w i , j − 1 \left\{\begin{matrix} ①:f_{i,j}=f_{i,p}+f_{p+1,j}+w_{i,j}\hspace{1cm}\\ ②:f_{i,j-1}=f_{i,k}+f_{k+1,j-1}+w_{i,j-1}\\ ③:f_{i,j}\leq f_{i,k}+f_{k+1,j}+w_{i,j}\hspace{0.9cm}\\ ④:f_{i,j-1}\leq f_{i,p}+f_{p+1,j-1}+w_{i,j-1}\hspace{0.0cm} \end{matrix}\right. ⎩ ⎨ ⎧①:fi,j=fi,p+fp+1,j+wi,j②:fi,j−1=fi,k+fk+1,j−1+wi,j−1③:fi,j≤fi,k+fk+1,j+wi,j④:fi,j−1≤fi,p+fp+1,j−1+wi,j−1
要证: f i , j ≥ f i , k + f k + 1 , j + w i , j f_{i,j}\geq f_{i,k}+f_{k+1,j}+w_{i,j} fi,j≥fi,k+fk+1,j+wi,j
首先是一番的推理:
首先因为最后一步已经用到了式③来证明 f i , j = f i , k + f k + 1 , j + w i , j f_{i,j}=f_{i,k}+f_{k+1,j}+w_{i,j} fi,j=fi,k+fk+1,j+wi,j,可以假设之间没有用到式③…然后因为带有不等号,所以必定含有式④:
f i , j − 1 ≤ f i , p + f p + 1 , j − 1 + w i , j − 1 f_{i,j-1}\leq f_{i,p}+f_{p+1,j-1}+w_{i,j-1} fi,j−1≤fi,p+fp+1,j−1+wi,j−1
然后因为还少了 f i , j , w i , j f_{i,j},w_{i,j} fi,j,wi,j,我们可以把①的右边加④的左边,把左边加到右边,这样 f i , j f_{i,j} fi,j与 w i , j w_{i,j} wi,j的方向就对了,就得到:
f i , j − 1 + f i , p + f p + 1 , j + w i , j ≤ f i , j + f i , p + f p + 1 , j − 1 + w i , j − 1 f_{i,j-1}+f_{i,p}+f_{p+1,j}+\textcolor{blue}{w_{i,j}}\leq \textcolor{blue}{f_{i,j}}+f_{i,p}+f_{p+1,j-1}+w_{i,j-1} fi,j−1+fi,p+fp+1,j+wi,j≤fi,j+fi,p+fp+1,j−1+wi,j−1
还约掉一项 f i , p f_{i,p} fi,p: f i , j − 1 + f p + 1 , j + w i , j ≤ f i , j + f p + 1 , j − 1 + w i , j − 1 f_{i,j-1}+f_{p+1,j}+w_{i,j}\leq f_{i,j}+f_{p+1,j-1}+w_{i,j-1} fi,j−1+fp+1,j+wi,j≤fi,j+fp+1,j−1+wi,j−1
没什么想法,先把②带入进去:
f i , k + f k + 1 , j − 1 + w i , j − 1 + f p + 1 , j + w i , j ≤ f i , j + f p + 1 , j − 1 + w i , j − 1 f_{i,k}+f_{k+1,j-1}+w_{i,j-1}+f_{p+1,j}+w_{i,j}\leq f_{i,j}+f_{p+1,j-1}+w_{i,j-1} fi,k+fk+1,j−1+wi,j−1+fp+1,j+wi,j≤fi,j+fp+1,j−1+wi,j−1
又约掉一项 w i , j − 1 w_{i,j-1} wi,j−1: f i , k + f k + 1 , j − 1 + f p + 1 , j + w i , j ≤ f i , j + f p + 1 , j − 1 f_{i,k}+f_{k+1,j-1}+f_{p+1,j}+w_{i,j}\leq f_{i,j}+f_{p+1,j-1} fi,k+fk+1,j−1+fp+1,j+wi,j≤fi,j+fp+1,j−1
现在要想办法把右侧的 f p + 1 , j − 1 f_{p+1,j-1} fp+1,j−1约掉,发现可以对左边用四边形不等式:
f i , k + f k + 1 , j − 1 + f p + 1 , j + w i , j ≤ f i , j + f p + 1 , j − 1 f_{i,k}+\textcolor{blue}{f_{k+1,j-1}+f_{p+1,j}}+w_{i,j}\leq f_{i,j}+f_{p+1,j-1} fi,k+fk+1,j−1+fp+1,j+wi,j≤fi,j+fp+1,j−1
f i , k + f k + 1 , j + f p + 1 , j − 1 + w i , j ≤ f i , k + f k + 1 , j − 1 + f p + 1 , j + w i , j ≤ f i , j + f p + 1 , j − 1 f_{i,k}+\textcolor{blue}{f_{k+1,j}+f_{p+1,j-1}}+w_{i,j}\leq f_{i,k}+\textcolor{blue}{f_{k+1,j-1}+f_{p+1,j}}+w_{i,j}\leq f_{i,j}+f_{p+1,j-1} fi,k+fk+1,j+fp+1,j−1+wi,j≤fi,k+fk+1,j−1+fp+1,j+wi,j≤fi,j+fp+1,j−1
f i , k + f k + 1 , j + f p + 1 , j − 1 + w i , j ≤ f i , j + f p + 1 , j − 1 f_{i,k}+\textcolor{blue}{f_{k+1,j}+f_{p+1,j-1}}+w_{i,j}\leq f_{i,j}+f_{p+1,j-1} fi,k+fk+1,j+fp+1,j−1+wi,j≤fi,j+fp+1,j−1
现在可以约掉 f p + 1 , j − 1 f_{p+1,j-1} fp+1,j−1了:
f i , k + f k + 1 , j + w i , j ≤ f i , j f_{i,k}+f_{k+1,j}+w_{i,j}\leq f_{i,j} fi,k+fk+1,j+wi,j≤fi,j
QED.
一种更有技巧性的证法:
已知: { ① : f i , j = f i , p + f p + 1 , j + w i , j ② : f i , j − 1 = f i , k + f k + 1 , j − 1 + w i , j − 1 ③ : f i , j ≤ f i , k + f k + 1 , j + w i , j ④ : f i , j − 1 ≤ f i , p + f p + 1 , j − 1 + w i , j − 1 \left\{\begin{matrix} ①:f_{i,j}=f_{i,p}+f_{p+1,j}+w_{i,j}\hspace{1cm}\\ ②:f_{i,j-1}=f_{i,k}+f_{k+1,j-1}+w_{i,j-1}\\ ③:f_{i,j}\leq f_{i,k}+f_{k+1,j}+w_{i,j}\hspace{0.9cm}\\ ④:f_{i,j-1}\leq f_{i,p}+f_{p+1,j-1}+w_{i,j-1}\hspace{0.0cm} \end{matrix}\right. ⎩ ⎨ ⎧①:fi,j=fi,p+fp+1,j+wi,j②:fi,j−1=fi,k+fk+1,j−1+wi,j−1③:fi,j≤fi,k+fk+1,j+wi,j④:fi,j−1≤fi,p+fp+1,j−1+wi,j−1
要证: f i , j ≥ f i , k + f k + 1 , j + w i , j f_{i,j}\geq f_{i,k}+f_{k+1,j}+w_{i,j} fi,j≥fi,k+fk+1,j+wi,j
因为不等号方向不对,所以不能有③,因为式中有 w i , j w_{i,j} wi,j,所以必须把①带进去,消掉 w i , j w_{i,j} wi,j:
f i , p + f p + 1 , j ≥ f i , k + f k + 1 , j f_{i,p}+f_{p+1,j}\geq f_{i,k}+f_{k+1,j} fi,p+fp+1,j≥fi,k+fk+1,j
f i , k + f k + 1 , j ≤ f i , p + f p + 1 , j f_{i,k}+f_{k+1,j}\leq f_{i,p}+f_{p+1,j} fi,k+fk+1,j≤fi,p+fp+1,j
(这是要证明的式子)
这个式子的意思就是在 f i , j f_{i,j} fi,j意义下 k k k比 p p p优。
而我们知道在 f i , j − 1 f_{i,j-1} fi,j−1意义下 k k k比 p p p优: f i , k + f k + 1 , j − 1 ≤ f i , p + f p + 1 , j − 1 f_{i,k}+f_{k+1,j-1}\leq f_{i,p}+f_{p+1,j-1} fi,k+fk+1,j−1≤fi,p+fp+1,j−1
我们可以比较一下这两个式子:
条件: f i , k + f k + 1 , j − 1 ≤ f i , p + f p + 1 , j − 1 条件:f_{i,k}+\textcolor{blue}{f_{k+1,j-1}}\leq f_{i,p}+\textcolor{blue}{f_{p+1,j-1}} 条件:fi,k+fk+1,j−1≤fi,p+fp+1,j−1
结论: f i , k + f k + 1 , j ≤ f i , p + f p + 1 , j 结论:f_{i,k}+\textcolor{red}{f_{k+1,j}}\leq f_{i,p}+\textcolor{red}{f_{p+1,j}} 结论:fi,k+fk+1,j≤fi,p+fp+1,j
若有: 条件 + T = 结论 条件+T=结论 条件+T=结论,则 T : f p + 1 , j − 1 + f k + 1 , j ≤ f k + 1 , j − 1 + f p + 1 , j T:\textcolor{blue}{f_{p+1,j-1}}+\textcolor{red}{f_{k+1,j}}\leq \textcolor{blue}{f_{k+1,j-1}}+\textcolor{red}{f_{p+1,j}} T:fp+1,j−1+fk+1,j≤fk+1,j−1+fp+1,j,恰为四边形不等式,证毕。
因此我们知道 f i , j ≥ f i , k + f k + 1 , j + w i , j f_{i,j}\geq f_{i,k}+f_{k+1,j}+w_{i,j} fi,j≥fi,k+fk+1,j+wi,j,而我们又知道 f i , j ≤ f i , k + f k + 1 , j + w i , j f_{i,j}\leq f_{i,k}+f_{k+1,j}+w_{i,j} fi,j≤fi,k+fk+1,j+wi,j,因此 f i , j = f i , k + f k + 1 , j + w i , j f_{i,j}= f_{i,k}+f_{k+1,j}+w_{i,j} fi,j=fi,k+fk+1,j+wi,j。
这说明如果存在一个 p > k p>k p>k,则 k k k必然也是 f i , j f_{i,j} fi,j的最优决策点,因此只需要枚举到 k k k。
接下来证明右边:
要证 p i , j ≤ p i + 1 , j p_{i,j}\leq p_{i+1,j} pi,j≤pi+1,j,设 p = p i , j , k = p i + 1 , j p=p_{i,j},k=p_{i+1,j} p=pi,j,k=pi+1,j,就假设 p > k p>k p>k。
我们仿照左边的思路,想要从“ f i + 1 , j f_{i+1,j} fi+1,j意义下 k k k更优”推出“ f i , j f_{i,j} fi,j意义下 k k k更优”。
想要证明 f i , j ≥ f i , k + f k + 1 , j + w i , j f_{i,j}\geq f_{i,k}+f_{k+1,j}+w_{i,j} fi,j≥fi,k+fk+1,j+wi,j,即:
结论 : f i , k + f k + 1 , j ≤ f i , p + f p + 1 , j 结论:f_{i,k}+f_{k+1,j} \leq f_{i,p}+f_{p+1,j} 结论:fi,k+fk+1,j≤fi,p+fp+1,j
我们知道对于 f i + 1 , j f_{i+1,j} fi+1,j来说, k k k优于 p p p:
条件 : f i + 1 , k + f k + 1 , j ≤ f i + 1 , p + f p + 1 , j 条件:f_{i+1,k}+f_{k+1,j}\leq f_{i+1,p}+f_{p+1,j } 条件:fi+1,k+fk+1,j≤fi+1,p+fp+1,j
设: 条件 + T = 结论 条件+T=结论 条件+T=结论,用还原不等式的方法求出 T T T, T T T恰是四边形不等式。
枚举决策点的总次数约为:
∑ l e n = 1 n ∑ i = 1 2 n − l e n + 1 p i + 1 , i + l e n − 1 − p i , i + l e n − 2 + 1 {\overset{n}{\underset{len=1}\sum}}{\overset{2n-len+1}{\underset{i=1}\sum}}p_{i+1,i+len-1}-p_{i,i+len-2}+1 len=1∑ni=1∑2n−len+1pi+1,i+len−1−pi,i+len−2+1
≤ ∑ l e n = 1 n ∑ i = 1 2 n p i + 1 , i + l e n − 1 − p i , i + l e n − 2 + 1 \leq {\overset{n}{\underset{len=1}\sum}}{\overset{2n}{\underset{i=1}\sum}}p_{i+1,i+len-1}-p_{i,i+len-2}+1 ≤len=1∑ni=1∑2npi+1,i+len−1−pi,i+len−2+1
= ∑ l e n = 1 n ( ∑ i = 1 2 n p i + 1 , i + l e n − 1 − ∑ i = 1 2 n p i , i + l e n − 2 ) + n = {\overset{n}{\underset{len=1}\sum}}\left({\overset{2n}{\underset{i=1}\sum}}p_{i+1,i+len-1}-{\overset{2n}{\underset{i=1}\sum}}p_{i,i+len-2}\right)+n =len=1∑n(i=1∑2npi+1,i+len−1−i=1∑2npi,i+len−2)+n
= ∑ l e n = 1 n ( ∑ i = 2 2 n + 1 p i , i + l e n − 2 − ∑ i = 1 2 n p i , i + l e n − 2 ) + n = {\overset{n}{\underset{len=1}\sum}}\left({\overset{2n+1}{\underset{i=2}\sum}}p_{i,i+len-2}-{\overset{2n}{\underset{i=1}\sum}}p_{i,i+len-2}\right)+n =len=1∑n(i=2∑2n+1pi,i+len−2−i=1∑2npi,i+len−2)+n
= ∑ l e n = 1 n p 2 n + 1 , 2 n + l e n − 1 − p 1 , l e n − 1 + n = {\overset{n}{\underset{len=1}\sum}}p_{2n+1,2n+len-1}-p_{1,len-1}+n =len=1∑np2n+1,2n+len−1−p1,len−1+n
= ∑ l e n = 1 n O ( n ) = {\overset{n}{\underset{len=1}\sum}}O(n) =len=1∑nO(n)
= O ( n 2 ) =O(n^2) =O(n2)
转移复杂度为 O ( 1 ) O(1) O(1),因此证完。
原来的代码:
for(int len=2;len<=n;len++){ 区间长度
for(int i=1,j;(j=i+len-1)<=2*n;i++){ 区间端点
for(int k=i;k<j;k++){ 区间分割点
g[i][j]=max(g[i][j],g[i][k]+g[k+1][j]+s[j]-s[i-1]);
}
}
}
新的代码:
for(int len=2; len<=n; len++){ 区间长度
for(int i=1,j; (j=i+len-1)<=2*n; i++){ 区间端点
g[i][j]=max(g[i][j-1],g[i+1][j])+s[j]-s[i-1];
}
}
因为最大值的最优决策一定能在两端取得,也即:
g i , j = max { g i , j − 1 , g i + 1 , j } + w i , j g_{i,j}=\max\{g_{i,j-1},g_{i+1,j}\}+w_{i,j} gi,j=max{gi,j−1,gi+1,j}+wi,j
*请注意接下来证明中“左端”和“左侧”的区别,对于区间 [ i , j ] = [ i , k ] + [ k + 1 , j ] [i,j]=[i,k]+[k+1,j] [i,j]=[i,k]+[k+1,j],左端指的是 [ i , i ] [i,i] [i,i],而左侧指的是 [ i , k ] [i,k] [i,k]
要证明最大值的最优决策一定会在两端取得,可以考虑 g i , j g_{i,j} gi,j的最优决策,因此归纳所有区间长度小于 j − i + 1 j-i+1 j−i+1的区间全都符合假设:
反证,假设端点不是最优决策点(反论题),设最优决策点为 k ( i < k < j − 1 ) k(i
g i , j = g i , k + g k + 1 , j + w i , j g_{i,j}=g_{i,k}+g_{k+1,j}+w_{i,j} gi,j=gi,k+gk+1,j+wi,j
现在考虑区间 g i , k g_{i,k} gi,k,我们知道 g i , k g_{i,k} gi,k的最优决策一定在其两端取得。假设在左端取得,则 g i , j = g i + 1 , k + w i , k + g k + 1 , j + w i , j g_{i,j}=g_{i+1,k}+w_{i,k}+g_{k+1,j}+w_{i ,j} gi,j=gi+1,k+wi,k+gk+1,j+wi,j
我们可以构造一种方案,先把 [ i + 1 , k ] [i+1,k] [i+1,k]和 [ k + 1 , j ] [k+1,j] [k+1,j]合并,再把 [ i + 1 , j ] [i+1,j] [i+1,j]和 [ i , i ] [i,i] [i,i]合并,贡献就是:
g i , j ′ = g i + 1 , k + g k + 1 , j + w i + 1 , j + w i , j g'_{i,j}=g_{i+1,k}+g_{k+1,j}+w_{i+1,j}+w_{i,j} gi,j′=gi+1,k+gk+1,j+wi+1,j+wi,j
对比 g i , j g_{i,j} gi,j和这个式子:
g i , j = g i + 1 , k + w i , k + g k + 1 , j + w i , j g_{i,j}=g_{i+1,k}+\textcolor{blue}{w_{i,k}}+g_{k+1,j}+w_{i ,j} gi,j=gi+1,k+wi,k+gk+1,j+wi,j
g i , j ′ = g i + 1 , k + w i + 1 , j + g k + 1 , j + w i , j g'_{i,j}=g_{i+1,k}+\textcolor{red}{w_{i+1,j}}+g_{k+1,j}+w_{i,j} gi,j′=gi+1,k+wi+1,j+gk+1,j+wi,j
若 w i , k ≤ w i + 1 , j \textcolor{blue}{w_{i,k}}\leq \textcolor{red}{w_{i+1,j}} wi,k≤wi+1,j:
则显然, g i , j ≥ g i , j ′ g_{i,j}\geq g'_{i,j} gi,j≥gi,j′,则说明 i i i也是最优决策点(由于假设 g i , j g_{i,j} gi,j),与反论题矛盾.
否则: w i , k > w i + 1 , j \textcolor{blue}{w_{i,k}}>\textcolor{red}{w_{i+1,j}} wi,k>wi+1,j
即: a i > w k + 1 , j \textcolor{blue}{a_i}>\textcolor{red}{w_{k+1,j}} ai>wk+1,j
(说明右侧所有石子的大小加起来还没有 a i a_i ai大)
此时我们构造一种方案:
先把 [ i , k ] [i,k] [i,k]合并好, [ k + 1 , j ] [k+1,j] [k+1,j]区间保留原始的样子,然后把右侧的石子依次逐个加入左边的堆中,这种方案的总贡献为:
g i , j ′ ′ = g i , k + ( ∑ t = k + 1 j − 1 w i , t ) + w i , j ≥ g i , k + ( j − k − 1 ) ⋅ a i + w i , j > g i , k + ( j − k − 1 ) ⋅ w k + 1 , j + w i , j g''_{i,j}=g_{i,k}+\left(\overset{j-1}{\underset{t=k+1}\sum}w_{i,t}\right)+w_{i,j}\geq g_{i,k}+(j-k-1)\cdot \textcolor{blue}{a_i}+w_{i,j}\textcolor{black}> g_{i,k}+(j-k-1)\cdot \textcolor{red}{w_{k+1,j}}+w_{i,j} gi,j′′=gi,k+(t=k+1∑j−1wi,t)+wi,j≥gi,k+(j−k−1)⋅ai+wi,j>gi,k+(j−k−1)⋅wk+1,j+wi,j
而我们知道 g g g函数也像 f f f一样具有上界:
g k + 1 , j ≤ ( j − k − 1 ) ⋅ w k + 1 , j \color{red}g_{k+1,j}\leq (j-k-1)\cdot w_{k+1,j} gk+1,j≤(j−k−1)⋅wk+1,j
因此:
g i , j ′ ′ > g i , k + ( j − k − 1 ) ⋅ w k + 1 , j + w i , j ≥ g i , k + g k + 1 , j + w i , j = g i , j g''_{i,j}> g_{i,k}+\textcolor{red}{(j-k-1)\cdot w_{k+1,j}}+w_{i,j}\textcolor{red}{\geq} g_{i,k}+\textcolor{red}{g_{k+1,j}}+w_{i,j}=g_{i,j} gi,j′′>gi,k+(j−k−1)⋅wk+1,j+wi,j≥gi,k+gk+1,j+wi,j=gi,j
此时, g i , j ′ ′ > g i , j g''_{i,j}>g_{i,j} gi,j′′>gi,j,证明新方案严格优于原方案,说明 k k k不是最优决策点,矛盾。
大概意思就是说,对于区间 [ i , k ] [i,k] [i,k]的最优决策点在其左端的情况,假如说 w i , k ≤ w i + 1 , j w_{i,k}\leq w_{i+1,j} wi,k≤wi+1,j,则 [ i , j