zoukankan      html  css  js  c++  java
  • 关于斜率优化半凸包规律的小结

    最近做了几道简单的斜率优化题,发现其实对于式子画出来的半凸包是有规律的,来分享一下。(这里只针对横坐标单调递增且查询的斜率恒正或者恒负的情况)
    1,照常用朴素的式子(一般O(n^2))推到一边只含j(就是y),另外一边含kx+b的形式,然后不要用不等式来强推(这样不会错,但是很烦)。
    2,假如题目求最小值,就是一条直线从下往上扫描,同时对应的是下凸包(这里的下是指大致为y=1/x当x>0时的图像或者是y=-1/x当x<0时的图像);同理,最大值为上凸包(这里的上是指大致为y=1/x当x<0时的图像或者是y=-1/x当x>0时的图像)。
    3,假如查询的斜率是正数,就是大概y=-1/x的图像(只取一支,视乎满足2中的哪个条件),假如是负数,则相反,是y=1/x的图像。
    这样大概就可以把图像画出来了,然后就可以很简单地数形结合来做题了。
    当然这里只是对于最简单的那种情况,假如别的不单调,要用二分斜率或者是平衡树的方法来维护DP。
    4,其实斜率优化有一些题目还可以拆成一次查询和一次凸包尾部插入,所以有一些题(比如说NOI2019day1T1回家路线)你就可以把操作分成两次来做,更加简便。

  • 相关阅读:
    cron生成
    sp_addlinkedserver,Synonym
    上海城市坐标
    评分插件 jquery.raty.js
    ORA-12514: TNS:listener does not currently know of service requested in connect
    ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist
    工厂模式
    单例模式
    Qt中的Q_OBJECT作用, 以及信号槽
    DDLog-不同颜色打印信息
  • 原文地址:https://www.cnblogs.com/Ronald-MOK1426/p/11776430.html
Copyright © 2011-2022 走看看