博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
线段树维护二维平面中的线段
阅读量:4658 次
发布时间:2019-06-09

本文共 420 字,大约阅读时间需要 1 分钟。

 

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

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

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

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

  • 更新线段的过程:

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

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

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

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

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

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

    时间复杂度为 nlog2n 。


 

一些题目:

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

你可能感兴趣的文章
Codeforces633G(SummerTrainingDay06-I dfs序+线段树+bitset)
查看>>
iOS判断手机某个App是否存在和常用scheme
查看>>
6 实现微信公众号 自动回复功能
查看>>
51Nod 1212无向图最小生成树
查看>>
hdu 4542 小明系列故事——未知剩余系
查看>>
Symbian UI 架构分类
查看>>
SVM入门(三)线性分类器Part 2
查看>>
mysql 执行 cannot found mac安装mysql的两种方法(含配置)
查看>>
BZOJ 1984: 月下“毛景树”( 树链剖分 )
查看>>
Properties类、序列化流与反序列化流
查看>>
Swift学习笔记一:与OC的区别
查看>>
七牛容器实操
查看>>
内存分配失败捕捉 set_new_handler
查看>>
2013年再见,我会永远记住这一年!
查看>>
Unity 游戏框架搭建 (十七) 静态扩展GameObject实现链式编程
查看>>
青蛙学Linux—Ansible中playbook的使用
查看>>
ASP.NET MVC3 URL友好化的重型武器[路由]
查看>>
tiny6410在I2c用户态中的程序设计eeprom
查看>>
canvas制作刮刮乐案例
查看>>
软件工程真的是一门什么用都没有的学科么?
查看>>