【计算几何】zjoi2008 risk
来源:互联网 发布:深圳大数据协会 编辑:程序博客网 时间:2024/05/01 19:36
题目大意:给你一个平面图,平面被分成了若干个区域,求出每个区域与之相邻的区域,数据保证区域数不超过500;
有数据范围可以看出要求是低于N3的算法。
我的做法是:
1.将每一条线段AB拆成两条有向线段AB与BA,然后将所有有向线段AB与从B点引出的线段中位于AB顺时针方向的第一条线段连有向边(BA与AB的夹角为2PI,而不是0)。这样对所有的线段做一次DFS之后就能将图中的封闭区域全部求出来,这样出了某个区域包含的区域,其他相邻的区域都可以求出来了;
2.可以使用环顾法求出各个区域之间的包含关系,这个包含关系类似于一棵树,然后用拓扑序,先处理叶子节点,这样可以把包含关系也求出来。
这个方法是我觉得最好实现的方法了。
总之既然是计算几何题就肯定有很多细节的,最后还是拿了几组数据来调才A的(数据很不好生成。。)
另外就是发现math库里面直接就有求极角的函数了,那就是arctan2!以后不用自己写极角了,每次都要重新推一遍,囧。
code:
- 【计算几何】zjoi2008 risk
- [zjoi2008]Risk
- 【半平面交】【计算几何】[BZOJ1038][ZJOI2008]瞭望塔
- 【模拟】【计算几何】[ZJOI2008][HYSBZ/BZOJ1033]杀蚂蚁antbuster
- HYSBZ/BZOJ 1038 [ZJOI2008] 瞭望塔 - 计算几何
- bzoj1039 [ZJOI2008]无序运动Movement AC自动机 计算几何
- 【BZOJ1038】[ZJOI2008]瞭望塔 计算几何 半平面交/模拟退火+二分
- BZOJ1035: [ZJOI2008]Risk(最小左转法+点定位)
- ZJOI2008树的计算--树链剖分裸题
- [ZJOI2008树的计算]树链剖分
- 计算几何几何函数库
- 计算几何-几何库
- 计算几何
- 计算几何
- 计算几何
- 计算几何
- 计算几何
- 计算几何
- volatile关键字
- ORACLE中方案的概念以及方案与数据库的关系
- SQL 标量函数-----> 取子串函数 、子串长度
- opendedup(sdfs)源码分析5之FakeFilesystem篇
- 郭天祥,我的大学六年
- 【计算几何】zjoi2008 risk
- 手机
- 被触动心灵的感觉.....
- 写自己的ls命令
- Thinking in Java笔记7
- Squirrel中的类与实例
- 3D模型的姿态单位化
- flex显示数字时钟和日期
- oracle set serveroutput on