线段树维护二维平面中的线段

 

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

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

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

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

  • 更新线段的过程:

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

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

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

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

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

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

    时间复杂度为 nlog2n 。


 

一些题目:

P4254 [JSOI2008]Blue Mary开公司

P4097 [HEOI2013]Segment

转载于:https://www.cnblogs.com/wyher/p/10425779.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值