POJ 2932 扫描线思想
来源:互联网 发布:手机淘宝 怎么开店 编辑:程序博客网 时间:2024/05/20 21:19
这个题确实太神奇了
大意就是给出了n个互不相交的圆。 各个圆之间有可能一个完全包含了另一个。这里包含就是一个圆整个都被另一个圆圈再里面。
现在求那些没有被包含的圆的序号。
数据量是4W
所以N2的肯定不行。
苦思冥想,不得其解
http://blog.sina.com.cn/s/blog_6e7b12310100qoeh.html
看了这个之后不由得大呼数据结构之博大精深
大意就是类似于我们经常用的那种扫描线,只不过这里是圆。
每个圆有最左边的点和最右边的点。我们就是从左到右按顺序把这些点扫一遍。
扫的过程中呢,如果扫到了一个圆的左端点,那么就要看这个圆是否被包含了,如果没被包含,就加入我们设计的数据结构中。那么怎么判断有没有被包含了呢,最裸的想法是看是否被之前数据结构中的圆包含。实际上只需要跟数据结构中跟自己圆心纵坐标相近的上下两个圆来判断即可了,因为此时我们设计的数据结构中一定都是一些互不包含的一些圆,如果新进的这个圆被包含了,那么那个包含它的圆必然在其相邻的地方。
如果扫到了一个圆得右端点呢,就要把这个圆删除掉了,因为再往后的圆不会跟它发生关系了。
根据这个能插入,能删除,能找相邻的条件,可以发现,用set 来实现是再好不过了。
- POJ 2932 扫描线思想
- POJ 2932 (扫描线)
- poj 2932 Coneology 扫描线
- poj 2932 Coneology (扫描线)
- POJ 1151 扫描线
- POJ 1389 (扫描线)
- POJ 1389 (扫描线)
- poj 1151 扫描线
- poj 1389 扫描线
- hdu 5091 线段树+扫描线思想
- POJ 2932 Coneology (平面扫描)
- POJ 2932 Coneology (平面扫描)
- poj 1151 Atlantis 扫描线
- poj 3109 扫描线+bit
- Educational Codeforces Round 4 D 扫描线思想
- 扫描线z-buffer消隐算法思想与数据结构
- poj 2932 Coneology(平面扫描)
- POJ 2932 Coneology(平面扫描)
- 在PHP语言中使用JSON
- 奋斗黑马程序员----面向对象之介绍
- 搜寻电子图书的一些小窍门
- HSQLDB的几种运行模式
- android项目中values中几个文件的作用
- POJ 2932 扫描线思想
- Linux设备驱动之I2C架构分析
- 奋斗黑马程序员----java函数部分
- HSQLDB安装与使用
- 反射
- android 弹不出软键盘的解决方法
- 红尘恋歌
- 奋斗黑马程序员----面向对象之介绍
- IOS 获得通讯录中联系人的所有属性