四边形不等式

四边形不等式用于区间(dp),对于(dp)方程(注意如果额外代价和(k)有关好像是不行的...):

[dp_{i,j}=min_{k=i}^{j-1}{dp_{i,k}+dp_{k+1,j}}+w_{i,j} ]

如果(forall a<b leq c<d),都有(w_{a,c}+w_{b,d}leq w_{b,c}+w_{a,d}),那么就可以用四边形不等式把复杂度从(O(n^3))优化到(O(n^2))

具体操作是:对于(forall i,j),设(pos_{i,j})是使(dp_{i,j})取到最优值的(k),则有(pos_{i,j-1} leq pos_{i,j} leq pos_{i+1,j})。然后在这个范围内暴力循环(k),是(O(n^2))的。

真正做题的时候可以先暴力区间(dp),然后发现它是满足上述单调性的就好了。

证明待填坑。

原文地址:https://www.cnblogs.com/Mr-Spade/p/9634853.html