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回家路线)你就可以把操作分成两次来做,更加简便。

  • 相关阅读:
    docker应用部署
    Netty实现WebSocket通信
    spring-mvc框架简单搭建
    spring-tx 事物
    spring注解及简单实用
    Spring Aop实现简单代码实现
    Jedis操作
    Proxy说明
    下载返回流
    向上捅破天,向下扎到根
  • 原文地址:https://www.cnblogs.com/Ronald-MOK1426/p/11776430.html
Copyright © 2011-2022 走看看