决策单调性优化DP

决策单调性

决策单调性,顾名思义就是决策点具有一定的单调性,使得我们在转移的过程中不需要遍历全部的情况,而只需要在一段满足单调性的区间内寻找我们想要的最优解

有的题目甚至不算是DP题,但是也有决策单调性的性质,也归到这一类

由于博主太菜,这里面很多结论不会给出详细的证明,可能只会给出感性理解的记忆方式

建议的阅读顺序是:

  • 记住区间包含单调性,四边形不等式的定义
  • 学习决策单调性优化DP在区间类(2D1D)和1D1D DP 中的应用
  • 在看例题的同时留意四边形不等式的一些证明

四边形不等式

定义

  • 区间包含单调性

\[\forall\ l\le l'\le r'\le r,\ w(l',r')\le w(l,r) \]

常见的满足区间包含单调性的有:\(w(l,r)=r-l​\),前缀和等

  • 四边形不等式(交叉小于包含):

\[\forall\ l_1\le l_2\le r_1\le r_2,\ w(l_1,r_1)+w(l_2,r_2)\le w(l_1,r_2)+w(l_2,r_1) \]

特别的,如果等号恒成立,称\(w\)满足四边形恒等式

常见的满足四边形不等式的有:\(w(l,r)=(r-l)^2\),证明如下:设\(a\le b\le c\le d\)

\[\begin{aligned} &\ \ \ \ \ (c-a)^2+(d-b)^2=a^2+b^2+c^2+d^2-2ac-2bd\\ &\le a^2+b^2+c^2+d^2-2ac-2bd-2a(d-c)+2b(d-c)\\ &=a^2+b^2+c^2+d^2-2ad-2bc\\ &=(d-a)^2+(c-b)^2 \end{aligned} \]

常见的满足四边形恒等式的有:\(w(l,r)=r-l\)

如果已知\(w(l,r-1)+w(l+1,r)\le w(l,r)+w(l+1,r-1)\),那么可以归纳证明其满足四边形不等式

一些性质

这些性质常用来证明区间包含单调性和四边形不等式,打表观察DP状态或者\(w\)函数是否满足这个关系也是实用手段(尤其是当你不知道该怎么优化DP的时候可以猜一手)

性质1

  • 若函数\(w_1(l,r),w_2(l,r)\)均满足四边形不等式/区间包含单调性,则对于任意 \(c_1,c_2\ge 0\),函数 \(c_1w_1+c_2w_2\) 也满足四边形不等式/区间包含单调性。

性质2

  • 若函数\(w(l,r)=f(r)-g(l)\),则函数 \(w\) 满足四边形恒等式。当函数 \(f,g\) 单调增加时,函数\(w\) 还满足区间包含单调性。

性质3

  • \(h(x)\) 是一个单调增加的凸函数,若函数\(w(l,r)\)满足四边形不等式和区间包含单调性,则复合函数 \(h(w(l,r))​\) 也满足四边形不等式和区间包含单调性。

性质4

  • \(h(x)\) 是一个凸函数,若函数\(w(l,r)\)满足四边形不等式和区间包含单调性,则复合函数 \(h(w(l,r))\) 也满足四边形不等式。

以上性质会在例题的证明中被提到

决策单调性优化DP

决策单调性能够优化的DP主要有以下两类:

区间类(2D1D)动态规划

(2D1D指状数\(O(n^2)\),转移有\(O(n)\)中情况)

形如:

\[f\ [l,r]\gets \min\limits_{l\le k<r}\{f\ [l,k]+f\ [k+1,r]\}+w(l,r) \]

引理:若\(w(l,r)\)满足区间包含单调性和四边形不等式,则状态\(f[l,r]​\)满足四边形不等式

定理:记\(g[l,r]\)\(f[l,r]\)的最小的 最优决策点,那么

\[g[l,r-1]\le g[l,r]\le g[l+1,r] \]

也就是说,我们在区间类DP的时候顺便记录下转移点,对于当前状态\(f[l,r]\),我们可以确定它的可能的最优解一定在\([\ g[l,r-1], g[l+1,r]\ ]\)这个区间内,对决策点的总枚举两降到\(O(n^2)\)

for (int len = 2; len <= n; ++len)  // 枚举区间长度
  for (int l = 1, r = len; r <= n; ++l, ++r) {
    // 枚举长度为len的所有区间
    f[l][r] = INF;
    for (int k = g[l][r - 1]; k <= g[l + 1][r]; ++k)
      if (f[l][r] > f[l][k] + f[k + 1][r] + w(l, r)) {
        f[l][r] = f[l][k] + f[k + 1][r] + w(l, r);  // 更新状态值
        g[l][r] = k;  // 更新(最小)最优决策点
      }
  }

例题

  • HDU3480 Division,四边形不等式的证明见上
  • P4767 [IOI2000]邮局\(w(l,r)\)\([l,r]\)之间建一个邮局的最小距离,显然取中位数最优,可以证明其满足四边形不等式(我不会证)

1D1D 动态规划

形如:

\[f[i]\gets \min\limits_{j=1}^{i-1}\{f[j]+w(j,i)\} \]

定理:若\(w(l,r)\)满足四边形不等式,记\(g[i]\)表示\(i\)的最小最优决策点,那么

\[\forall r_1\le r_2,g[r_1]\le g[r_2] \]

另一种形式(严格弱化版)

形如:

\[f[i]=\min\limits_{j=1}^{i-1}\{w(j,i)\} \]

因为决策单调性只限制了下界,并没有限制上界,所以复杂度依然是\(O(n^2)\)的。

所以我们要想办法限制上界

考虑暴力\(O(n)\)找出中点\(mid\)的最优转移点,那么对于\([l,mid-1]\)的点,我们有了一个上界,对于\([mid+1,r]\)的点,我们有了新的下界

这是一个分治问题,递归下去处理即可

例题

以Lightning Conductor为例使用四边形不等式相关性质证明四边形不等式

对于所有的\(p_i\),求\(\max\limits_{j=1}^n\{a_j+\sqrt{|i-j|}\}-a_i\)

首先将绝对值去掉,变成\(\max(\max\limits_{j=1}^i\{a_j+\sqrt{i-j}\},\max\limits_{j=i+1}^n\{a_j+\sqrt{j-i}\})-a_i\),两部分处理方式完全一致,直接reverse之后再做一遍即可

把所有数取反,把\(\max\)变成\(\min\)\(\min\limits_{j=1}^i\{-a_j-\sqrt{i-j}\}\)

由性质4:\(w(l,r)=r-l\),满足四边形恒等式和区间包含单调性,\(-\sqrt{x}\)是凸函数,所以复合函数\(w_2(j,i)=-\sqrt{i-j}\)满足四边形不等式

由性质1:\(w_1(j,i)=-a_j\),满足四边形恒等式,则原函数\(=w_1(j,i)+w_2(j,i)\),满足四边形不等式,得证

剩下的就分治即可,时间复杂度\(O(n\log n)\)

回到原问题

由于决策的单调性,我们可以将\(1\sim n\)划分成若干区间,表示这个区间内的DP值转移自哪里。

我们可以用单调队列维护。单调队列里的元素记录三个信息:\(l,r,p\),表示当前状态下(考虑了前\(i\)个元素),\(p\)是区间\([l,r]\)内的最优决策点。如果队首的\(r<\)当前的\(i\),弹出无用的队首。插入队尾时,依次和队尾元素比较,如果\(f_i\to f_l\)\(f_p\to f_l\)更优,那么\(p\)在任何状态下都不会比\(i\)更优,弹出队尾;否则将一段后缀分成两个部分,分界线用二分的方式找到。

时间复杂度\(O(n\log n)\)

例题

另一种形式

\[f\ [i,j]\gets \min\limits_{k\le j}\{f\ [i-1,k]+w(k+1,j)\} \]

实际上是分层的 1D1D DP。我们有类似的结论

引理:若\(w(l,r)\)满足区间包含单调性和四边形不等式,则状态\(f[l,r]​\)满足四边形不等式

定理:记\(g[l,r]\)\(f[l,r]\)的最小的 最优决策点,那么

\[g[l,r-1]\le g[l,r]\le g[l,r+1] \]

感性理解:因为有区间包含单调性,我们把一个区间的贡献拆成多个肯定不会更劣,这样我们得到了下界,同时减少一个元素贡献也不会变劣,得到上界

posted @ 2021-04-23 21:33  harryzhr  阅读(580)  评论(3编辑  收藏  举报