zoukankan      html  css  js  c++  java
  • 线段树维护二维平面中的线段

    要求在平面直角坐标系下维护两个操作:

     1.在平面上加入一条线段。记第 i 条被插入的线段的标号为 i

     2.给定一个数 k,询问与直线 x = k 相交的线段中,交点最靠上的线段的编号。

      • 沿用线段树的一般套路,保存的线段信息为线段的表达式。

      • 更新线段的过程:

        1.在线段树中找到该线段对应的区间。

        2.在原有线段与传递下来的线段中取出优势长度较长的线段(优势线段)保

           存在当前线段树节点,然后将另一条线段下传以更新其子点。

      • 正确性显然(线段的优势部分都会被保存下来)。

      • 时间复杂度证明:在第一个过程会找到 logn 个节点。在第二个过程中待更新的

        线段虽然会被转换但长度在每次更新后都减少一半,也是一个 log 的 。故总的

        时间复杂度为 nlog2n 。


    一些题目:

    P4254 [JSOI2008]Blue Mary开公司

    P4097 [HEOI2013]Segment

  • 相关阅读:
    String to Integer (atoi)
    Reverse Integer
    ZigZag Conversion
    01-GIT
    04-Eclipse操作SVN
    03-客户端访问SVN服务器
    02-Subversion安装与配置
    01-SVN概述
    09-Spring整合之SSH
    08-Spring的事务管理
  • 原文地址:https://www.cnblogs.com/wyher/p/10425779.html
Copyright © 2011-2022 走看看