Forever Young

「笔记」四边形不等式优化DP

四边形不等式优化DP

定义

1.原始定义

假设有一个二元函数\(w(x,y)\),如果对于任意\(a \leq b \leq c \leq d\),有

\[w(a, d) + w(b, c) \geq w(a, c) + w(b, d) \]

就说函数\(w\)满足四边形不等式

2.等价定义

还有一个等价的定义:如果对于任意\(a\leq b\),有:

\[w(a, b + 1) + w(a + 1, b) \geq w(a, b) + w(a + 1, b + 1) \]

就说函数\(w\)满足四边形不等式、

证明 2 -> 1

对于任意\(a < c\), 有 \((1)\)式:

\[w(a, c + 1) + w(a + 1, c) \geq w(a, c) + w(a + 1, c + 1) \]

对于任意\(a+1, c\),有\((2)\)式:

\[w(a + 1, c + 1) + w(a + 2, c) >= w(a + 1, c) + w(a + 2, c + 1) \]

两式相加得到\((3)\)式:

\[w(a, c + 1) + w(a + 2, c) \geq w(a, c) + w(a + 2, c + 1) \]

对比\((1)\)式和\((3)\)式,发现\(a + 1\)可以扩成\(a + 2\),同理\(a+2\)可以扩成\(a+3\)\(a+3\)可以扩成\(a+4\)……可以一直扩大直至\(b\leq c\)\(b\)是在\(a\)\(c\)之间的一个数),从而得到:

\[w(a, c + 1) + w(b, c) \geq w(a, c) + w(b, c + 1) \]

同理,对于任意\(a<c+1\),有\((4)\)式:

\[w(a, c + 2) + w(a + 1, c + 1) \geq w(a, c + 1) + w(a + 1, c + 2) \]

\((1)\)式与\((4)\)式相加得到\((5)\)式:

\[w(a, c + 2) + w(a + 1, c) \geq w(a, c) + w(a + 1, c + 2) \]

\((1)\)式进行一下直观对比:

\((1)\)式:\(w(a, c + 1) + w(a + 1, c) \geq w(a, c) + w(a + 1, c + 1)\)

\((5)\)式:\(w(a, c + 2) + w(a + 1, c) \geq w(a, c) + w(a + 1, c + 2)\)

可以发现\(c+1\)可以扩成\(c+2\),同理\(c+2\)可以扩成\(c+3\)\(c+3\)可以扩成\(c+4\)……可以一直扩大一直到\(d(c\leq d)\),从而得到:

\[w(a,d) + w(a + 1, c) \geq w(a, c) + w(a + 1, d) \]

再把上式\(a+1\)扩大到\(b\),保证\(a\leq b \leq c \leq d\),就可以得到\(1\),即

\(w(a,d) + w(b, c) \geq w(a, c) + w(b, d)\)

由此原始定义得证。

所以,证了这么久有啥用呢?

决策单调性

我们在做\(DP\)时经常会遇见这样的\(DP\)方程

\[dp[i] = \min/\max\{dp[j] + cost(j, i)\} \]

这样的\(DP\)方程被称作\(1D/1D\)动态规划,\(cost(i,j)\)决定着优化策略选择

决策单调性定理

如果函数\(cost(i,j)\)满足四边形不等式,则\(dp[i]\)有决策单调性(充分条件)

证明:

注:假设此时已经满足四边形不等式

假设此时的\(DP\)方程为\(dp[i] = \min\{dp[j] + cost(j, i)\}\)\(dp[i]\)的决策点是\(p[i]\),对于\(j < p[i] - 1(j < i)\),根据最优性:

\[dp[p[i]] + cost(p[i], i) \leq dp[j] + cost(j, i) \]

假设\(i' > i\),此时\(j \leq p[i] \leq i \leq i'\),根据四边形不等式:

\[cost(j, i') + cost(p[i], i) \geq cost(j, i) + cost(p[i], i') \]

对这个式子进行移项,得到

\[cost(p[i], i') - cost(p[i], i) \leq cost(j, i') - cost(j, i) \]

将此式和\(DP\)式(根据最优性得出的式子)相加得:

\[dp[p[i]] + cost(p[i], i') \leq dp[j] + cost(j, i') \]

由此可得,对于\(i'\)来说,\(p[i]\)\(j\)优,得证。

小小结

在上面的证明中我们可以知道,等价定义可以推出原始定义,而原始定义又可以推出决策单调性定理,其实在日常做题中,如果满足了等价定义,我们就可以直接用决策单调性来解决问题(就是说\(2\)可以推出\(1\)\(1\)可以推出\(3\),那么\(2\)可以推出\(3\)

下面就来看一道例题吧

例题

链接:洛谷P3515 [POI2011]Lightning Conductor

题目很简洁,就是为了找这么一个数\(p\)满足题目中给出的式子

那么我们不妨先移项,得到如下的式子

\[p\geq a[j] - a[i] + \sqrt{|i - j|} \]

而此时我们又要找到满足条件的最小的\(p\)

所以此时的\(p\)只要等于后面这个式子的最大值即可,即

\[p = \max(a[j] - a[i] + \sqrt{|i - j|}), 1\leq j \leq n \]

先考虑一种比较好的情况,假设\(j<i\),那么绝对值就可以去掉了,即

\[p = \max(a[j] + \sqrt{i - j}) - a[i] \]

上式中\(\max\)里的式子取到最大值,相当于负的这个式子取到最小值

所以我们可以定义\(dp[i] = \min(-a[j] - \sqrt{i - j})\)

为什么要用\(\min\)呢,因为在上面的证明中我们使用的都是\(\min\),所以这里是用\(\min\),如果是\(\max\)的话可以换成负数取个\(\min\)就好了,这是一样的,反正\(dp[i]\)是自己定义的,定义成正负都一样

但是这样直接做是\(n^2\)的,这不能达到我们的要求,所以现在我们来进行优化

观察一下这个\(DP\)方程的二元函数,那么此时的\(w(j,i)\)就等于\(-a[j] - \sqrt{i - j}\)

为了进行优化,下一步我们证明一下这个\(DP\)能不能满足决策单调性

求证:\(w(j, i+ 1) + w(j + 1, i) \geq w(j, i) + w(j + 1, i + 1)\)

证明:

把式子展开得

\[-a[j] - \sqrt{i + 1 - j} - a[j + 1] - \sqrt{i - j - 1} \geq -a[j] - \sqrt{i - j} - a[j + 1] - \sqrt{i - j} \]

发现可以去掉带有\(a\)数组的部分,然后式子就变成了这样

\[-\sqrt{i + 1 - j} - \sqrt{i - j - 1} \geq -\sqrt{i - j} - \sqrt{i - j} \]

移一下项得

\[\sqrt{i - j} - \sqrt{i - j - 1} \geq \sqrt{i + 1 - j} - \sqrt{i - j} \]

\(x = i - j\),因为\(i > j\) ,所以\(x>0\),于是一开始那个繁琐的问题就变成了证明\(\sqrt{x} - \sqrt{x - 1} \geq \sqrt{x + 1} - \sqrt{x}\)

定义函数\(f(x)=\sqrt{x} - \sqrt{x - 1}\),问题又转化成了证明\(f(x) \geq f(x + 1)\),那么就是要证明\(f(x)\)是单调非递增的函数即可

懒得证单调性……自己搜吧\(qwq\)

因为是个单调递减函数,所以证明成功

\(j>i\)时可以把序列翻转,得到的结果是一样的,做题的时候将序列翻转反向再做一遍上述操作即可,就不证明了

代码鸽了

总结

因为我很辣鸡,所以只能写这么一点点了\(qwq\)

下面几个参考都可以去看一下,我大部分的思路全来自这里

另外给大家推荐几道题8

[NOI2009]诗人小G

决策单调性优化模板题,但是会卡精度

[NOI1995]石子合并

可以用四边形不等式优化来做,也有一些很\(np\)的做法

ACwing305. 一个古老的石头游戏

上面那道题的加强版

参考

OI-wiki

0225【四边形不等式优化DP】

【学习笔记】动态规划—各种 DP 优化

posted @ 2020-04-13 18:58  Loceaner  阅读(227)  评论(6编辑  收藏  举报