zoukankan      html  css  js  c++  java
  • 让菜鸡讲一讲四边形不等式优化

    众所周知四边形不等式优化是应用在区间DP里面的我也不知道有什么其它地方可以用

    那么我们有时候在做区间DP的时候可以遇见这样的转移方程

    [f(i,j)=min(f(i,k-1),f(k,j))+w(i,j),ileq kleq j ]

    f(i,j)表示的是在(i,j)上的最优值,而w(i,j)是转移所需额外的代价

    众所周知这玩意儿复杂度是(O(n^3))

    看起来很不爽

    那么现在我们可以用四边形不等式优化这个技能来把它优化一下

    不过这个技能的使用是有条件的

    四边形不等式优化条件

    区间包含的单调性

    额,其实就是对于每个(aleq b < cleq d)

    满足(w(a,d)geq w(b,c))

    就是某个区间的w不能小于它的子区间的w

    四边形不等式

    对于每个(aleq b < cleq d)

    也满足(w(a,c)+w(b,d)leq w(a,d)+w(b,c))

          v-------v
      v-----------------v
    oooooooooooooooooooooo
      ^-----------^
          ^-------------^
    

    就是上面2个w加起来不能小于下面2个w

    在满足了条件后

    于是w函数满足区间包含的单调性四边形不等式

    一个定理可以使用啦:f函数也相应的满足了四边形不等式

    假设(f(i,j)=min(f(i,k-1),f(k,j))+w(i,j))(k=loc(i,j))取到最小

    因为f函数也满足了四边形不等式

    所以loc函数是单调的,即(loc(i,j)leq loc(i,j+1)leq loc(i+1,j+1))

    那么有一个强大的定理又可以使用了:

    [f(i,j)=min(f(i,k-1),f(k,j))+w(i,j),loc(i,j-1)leq kleq loc(i+1,j) ]

    至于有多强大?你可以发现这个转移的复杂度变成了(O(n^2))

  • 相关阅读:
    700. Search in a Binary Search Tree
    100. Same Tree
    543. Diameter of Binary Tree
    257. Binary Tree Paths
    572. Subtree of Another Tree
    226. Invert Binary Tree
    104. Maximum Depth of Binary Tree
    1、解决sublime打开文档,出现中文乱码问题
    移植seetafaceengine-master、opencv到ARM板
    ubuntu16.04-交叉编译-SeetaFaceEngine-master
  • 原文地址:https://www.cnblogs.com/finder-iot/p/8416085.html
Copyright © 2011-2022 走看看