dp,一样的dp方程,不一样的速度
就像你我天生为人
刷题,是日常的。尤其是在luogu。。大神都在BZOJ
我们在处理dp问题时,常常会出现一个二维的问题,他的dp转移方程是:
\[
dp[i][j]=min_{i<=k<j}(dp[i-1][k]+w[k+1][j])
\]
这样的问题我们称之为区间dp,是常见的。
但是,朴素的dp无法过掉此题,因为复杂度为\(O(n^3)\),这是无法容忍的,事实上,我能打出来已经不错了,好的我们下面介绍一下一种优化
先有一个引理当一个函数\(w(i,j)\)当且仅当对于$a < b \le c <d \(满足\)w(b,c)+w(a,d)>=w(a,c)+w(b,d)$时,此函数为凸函数
我们举一个例子 [IOI2000] 邮局
dp的转移方程为\(dp[i][j]=min_{i<=k<j}(dp[i-1][k]+w[k+1][j])\),其中\(w[i][j]\)为转移的代价
不妨对上面的引理变形
\[
w[i][j+1]+w[i+1][j] >=w[i][j]+w[i+1][j+1]
\]
再移项
\[
w[i+1][j+1]-w[i+1][j] \le w[i][j+1] -w[i][j]
\]
而这个式子 ,是显然的,比如说,通过一个例子
我们看,当左端点一样是,增加一个右端,会让花费变大,我们证明的时这个花费随着左端点的右移不升,而这,是显然的。
所以我们引出一个四边形不等式 ,由于w是一个凸的函数,而f由w累加,所以f也是凸函数所以 \(f[i][j] + f[i + 1][j + 1] \leq f[i][j + 1] + f[i + 1][j]\)
于是有决策点 \(s[i-1][j] \le s[i][j] \le s[i][j+1]\)
证明 不妨对于$x>y $,有x作为k-1的的决策
故而有 \(f[k-1][x]+w[x+1][i]<=f[k-1][y]+w[y+1][i]\)
而对于\(i+1\),有 \(w[y+1][i]+w[x+1][i+1]>=w[y+1][i+1]+w[x+1][i]\)
移项,有 \(w[y][i+1]-w[y][i]<=w[x][i+1]-w[x][i]\)
咦,怎么证否了
行吧,以上为扯淡
开始copy
证明 \(K[i][j?1]≤K[i][j]\)时,先假设 \(f[i][j?1]\) 有最优决策 k=y,再根据$x \leq y\leq j-1<j \(,列出四边形不等式:\)f[i][y]+f[i+1][x]≥f[i][x]+f[i+1][y]$
在不等式两边添加一定的项试图得到 \(f[i][j?1](k=x)+f[i][j](k=y)≤f[i][j?1](k=y)+f[i][j](k=x)\)
移项可得:\(f[i][j?1](k=x)?f[i][j?1](k=y)≤f[i][j](k=x)?f[i][j](k=y)\)
\(∵f[i][j?1](k=y)≤f[i][j?1](k=x)\)
\(∴f[i][j](k=y)≤f[i][j](k=x)\)
所以整完了,我米勒,事实上,对于满足决策单调性的就好
事实上参见CF321E ,我们在这里有\(w(b,c)+w(a,d) \le w(a,c)+w(b,d)\)
是反的!!!
但是我们依然有那个结论 \(s[i-1][j] \le s[i][j] \le s[i][j+1]\)
神奇吧。。。。但是好多AC此题的人使用了忘情水。。。我会学习的,再次介绍四边形类似的优化
我们对于这个题有笔者简单的自己证明
证明 不妨对于\(x>y\),有x作为k-1的的决策
故而有 \(f[k-1][x]+w[x+1][i]<=f[k-1][y]+w[y+1][i]\)
而对于\(i+1\),有 \(w[y+1][i]+w[x+1][i+1]>=w[y+1][i+1]+w[x+1][i]\)
移项,有 \(w[y][i+1]-w[y][i] \ge w[x][i+1]-w[x][i]\)
咦,怎么证对了
两边一加,我们得到 \(f[k-1][x]+w[x+1][i+1]<=f[k-1][y]+w[y+1][i+1]\),故\(s[i][j] \le s[i][j+1]\),
那个\(s[i-1][j]<=s[i][j]\)的话,我们可以通过数学归纳法证明。
待证
但是事实验证是对的。。。
至于嵬。只是我聊记kyn罢了
我会做补充的,对于不完善的地方。
原文:https://www.cnblogs.com/zhltao/p/12254357.html