zoukankan      html  css  js  c++  java
  • 时空旅行

    复习斜率优化。

    原题公式$min((x-x_i)^2+c_i)$拆开括号得$min(-2*x*x_i+x_i^2+c_i)+x^2$

    是个斜率优化的标准形式。

    题目中建出操作树后一个星球会影响到它的子树。所以可以使用线段树

    (其实所有和区间相关的问题都可以使用线段树)

    线段树上的每一个节点上存储插到它的直线。然后使用半平面交。

    每次查询就是查询一路上的节点,挪动指针即可做到时间复杂度O(nlog_2n)

    排序直接做是O(nlog^2n)的,但是可以先把所有直线排序,然后把所有要排序的直线挂在对应位置。最后遍历排序后的序列,在线段树的节点的直线数组上push_back即可。

    这样子可以去掉排序的log。

  • 相关阅读:
    购物网站被p.egou.com强制恶意劫持
    css下拉菜单
    StringToInt
    JframeMaxSize
    frameMaxSize
    inputChar
    英语要求
    sciAndSubject
    fileRename
    tensorflowOnWindows
  • 原文地址:https://www.cnblogs.com/cszmc2004/p/13023223.html
Copyright © 2011-2022 走看看