• 「杂谈」关于斜率优化维护凸包


    化柿子的时候化成一次函数的形式更直观一些(对我来说)。

    如果是单调栈上二分 / 单调队列,这一类的,通常都是斜率或者某些东西具有单调性,这个东西不需要也尽量不要对每一种情况都整理下来应该怎么优化,是死板的。斜率优化是把一类 dp 问题变成数据结构问题,让数据结构维护这个凸包(或者说维护凸包上两点连线的斜率),应该具体情况具体分析

    如果加的决策点没有单调性,通常是 平衡树 / CDQ 分治 来解决,平衡树的话就是直接维护这个凸包,CDQ 分治则是通过分治来转成静态问题,然后用单调栈等数据结构解决。

    有一种更普遍的做法,跳出维护凸包给我们思维上的限制,用李超树来维护一次函数(直线),也是一个 (log) 的,而且码力要求和常数上肯定都优于平衡树,但常数还有可能比较大(相比 CDQ 分治来说?),但不需要动脑子(也就是前文说的具体情况具体分析,分析哪些变量是单调的,这个凸包的形状是怎样的,依次加进去的决策点坐标的单调性,截凸包的直线斜率的单调性...),论性价比李超树也是一个很好的选择。

  • 相关阅读:
    我与solr(二)--导入mysql数据库
    Android 渐变效果
    希尔排序
    插入排序
    选择排序
    冒泡排序法
    QT仿QQ页面
    Colliding Mice
    QTablewidget通过代理实现限制输入
    QT绘制心形图案二
  • 原文地址:https://www.cnblogs.com/do-while-true/p/15404389.html
Copyright © 2020-2023  润新知