区间dp的四边形不等式推导

一、已知w(i,j)满足单调性四边形不等式,求证dp(i,j)满足四边形不等式

i<i+1<=j<j+1
w(i,j)+w(i+1,j+1)<=w(i+1,j)+w(i,j+1)
要证
左=dp(i,j)+dp(i+1,j+1)<=dp(i+1,j)+dp(i,j+1)=右
设x为(i+1,j)的最优分割点,y为(i,j+1)的最优分割点
先用y去分割(i,j),x去分割(i+1,j+1),可知均不为最优,故有
左<=
dp(i,y)+dp(y+1,j)+w(i,j)+dp(i+1,x)+dp(x+1,j+1)+w(i+1,j+1)
假设i<i+1<=y<=x
有dp(i,y)+dp(i+1,x)<=dp(i+1,y)+dp(i,x)
又有w(i,j)+w(i+1,j+1)<=w(i+1,j)+w(i,j+1)
所以
左<=
dp(i+1,y)+dp(y+1,j)+w(i,j)+dp(i,x)+dp(x+1,j+1)+w(i+1,j+1)
=dp(i+1,j)+dp(i,j+1)证毕
放缩的设元技巧:
①
dp(i,j)<=dp[y](i,j) 
dp(i+1,j+1)<=dp[x](i+1,j+1)
此时设y<=x
②
dp(i,j)<=dp[x](i,j)
dp(i+1,j+1)<=dp[y](i+1,j+1)
此时设x<=y

二、已知dp(i,j)满足四边形不等式,求证s(i,j-1)<=s(i,j)<=s(i+1,j)

s(i,j-1)<=s(i,j)<=s(i+1,j)
先证s(i,j-1)<=s(i,j)
设s(i,j-1)=p,s(i,j)=k,则要证明p<=k
用p和k分别去分割s(i,j-1),得到下面2式:
①dp(i,p)+dp(p+1,j-1)+w(i,j)
②dp(i,k)+dp(k+1,j-1)+w(i,j)
对于s(i,j-1)而言,p是最优分割点,而k不是,所以①-②得
[dp(i,p)+dp(p+1,j-1)]-[dp(i,k)+dp(k+1,j-1)]<=0③(真理)
变形得
x=[dp(i,p)-dp(i,k)]+[dp(p+1,j-1)-dp(k+1,j-1)]<=0④
现在用反证法,假设,待会只要证明出原本正确的④不成立即推翻的假设
接下来利用假设得到用于放缩的四边形不等式:
因为k+1<=p+1<=j-1<j
则由dp(i,j)满足四边形不等式可知:
dp(k+1,j-1)+dp(p+1,j)<=dp(p+1,j-1)+dp(k+1,j)

结合④可知
x=[dp(i,p)-dp(i,k)]+[dp(p+1,j-1)-dp(k+1,j-1)]
>=[dp(i,p)-dp(i,k)]+[dp(p+1,j)-dp(k+1,j)]
=[dp(i,p)+dp(p+1,j)]-[dp(i,k)+dp(k+1,j)]
=[dp(i,p)+dp(p+1,j)+w(i,j)]-[dp(i,k)+dp(k+1,j)+w(i,j)]
=dp[p](i,j)-dp[k](i,j)
由于
所以
明显与④不符
s(i,j)<=s(i+1,j)同理可证。

三、时间复杂度为O(n^2)的证明

for(len=2;len<=n;len++)
for(i=1;i+len-1<=n;i++)
j=i+len-1
for(k=s[i][j-1];k<s[i+1][j];s++)
当i=1时,次数num=s[2][len]-s[1][len-1]
当i=2时,次数num=s[3][len+1]-s[2][len]
当i=3时,次数num=s[4][len+2]-s[3][len+1]
...
当i=n+1-len时,次数num=s[n+2-len][n]-s[n+1-len][n-1]
全部相加并斜向抵消
则后两层循环共执行s[n+2-len][n]-s[1][len-1]次
最坏情况取边界值s[n+2-len][n]=n            s[1][len-1]=1
即n-1
总复杂度O((n-1)*(n-1))=O(n^2)   (简化写)

四、关于min和max的分别使用

dp[i][j]=min{dp[i][k]+dp[k+1][j]}+w[i][j] √

dp[i][j]=max{dp[i][k]+dp[k+1][j]}+w[i][j] ×

1.求证w(i,j)满足单调性和四边形不等式时dp(i,j)满足四边形不等式

i<=i'<=j<=j'
已知
①w(i',j)<=w(i,j')
②w(i,j)+w(i',j')>=w(i',j)+w(i,j')
求证
左=dp(i,j)+dp(i',j')>=dp(i',j)+dp(i,j')=右
证明:
设x为(i',j)最优分割点,y为(i,j')最优分割点
则用x/y分别分割(i',j')/(i,j)并不最优
假设(i<=i'<=)y+1<=x+1<=j<=j'
有dp(y+1,j)+dp(x+1,j')>=dp(x+1,j)+dp(y+1,j')
则
左>=dp(i,y)+dp(y+1,j)+w(i,j)+dp(i',x)+dp(x+1,j')+w(i',j')
  >=dp(i,y)+dp(x+1,j)+w(i',j)+dp(i',x)+dp(y+1,j')+w(i,j')
  >=[dp(i,y)+dp(y+1,j')+w(i,j')]+[dp(i',x)+dp(x+1,j)+w(i',j)]
   =dp(i,j')+dp(i',j)
证毕
tips:小范围成立则大范围成立    [数学归纳法],其中小范围可以由特殊值来确定相等

2.s(i,j)<=s(i,j')<=s(i',j')对于max并不成立

设s(i,j)=p,s(i,j')=k,要证s(i,j)<=s(i,j'),即p<=k
反证法:假设k<=p
用p/k分割(i,j')
①dp(i,p)+dp(p+1,j')+w(i,j')
②dp(i,k)+dp(k+1,j')+w(i,j')
①-②得
x=[dp(i,p)-dp(i,k)]+[dp(p+1,j')-dp(k+1,j')]<=0
k+1<=p+1<=j<=j'
dp(k+1,j)+dp(p+1,j')<=dp(p+1,j)+dp(k+1,j')
dp(p+1,j')-dp(k+1,j')<=dp(p+1,j)-dp(k+1,j)③
将③带入第7行中
x<=[dp(i,p)-dp(i,k)]+[dp(p+1,j)-dp(k+1,j)]
  =[dp(i,p)+dp(p+1,j)+w(i,j)]-[dp(i,k)+dp(k+1,j)+w(i,j)]
  =dp[p](i,j)-dp[k](i,j)>=0
不等号方向骤变!!!--->无法做出判断!!!

所以最大值问题还不能优化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值