本人已经退役了本来不想再写一些关于ACM的东西了,以免因为自己水平有限思想落后,误导他人不过后来想到这个空间晾着也比较尴尬,让各位找新文章的 ACMER经常扑空我十分过意不去所以整理了一下以前做过的計算几何题目,写第二份题目推荐这只是推荐一下而已,不涉及太多具体如何解题的实现方法希望大家发挥想象解题编码。如果有错万望指出。这次的题目不再局限于POJ了因为自己去年周游了各个OJ,反而很少在POJ切题了而且这次推荐的题目比上次难了,也复杂多了現在看回自己第一次写的计算几何题目推荐,实在感到当时自己写得有点肤浅其实对于一些大牛来说,这些题目也算不了什么下面的OJの中,CII是指ACM-ICPC Live Archive 网址是:http://cii-judge.baylor.edu/其他OJ的地址大家都熟知了,因此不再提供希望各位转载的同志注明本文的出处。一基础题目1.1 有固定算法的题目A, 三角剖分三角剖分这个东西貌似去年流行了一下高校联赛时某U连续出了两次。实际上对多边形进行三角剖分是一个很常见的算法思想因为三角形是一个比较简单的凸多边形,可以对两个三角形比较容易地求公共面积这也是三角剖分最常见的用途。对这个算法进行扩展就可以求两个简单多边形的面积交了。主要是理解有向面积的概念第一类是圆与三角形的相交,主要做法是分情况讨论POJ 极角排序顧名思义,极角排序一般就是有一个圆心的问题将平面上各个点按照与圆心极角进行排序。然后就可以在线性扫描之中解决一些统计问題不过这类问题就稍稍超出计算几何范畴了。UVA 11696 Beacons 扫描线算法扫描线算法需要使用到平衡树辅助,写起来比较复杂(对于本菜而言)关於平衡树,我建议是直接使用STL的set或map所以你需要掌握一些C++的知识,才能够看懂一份使用了map与set的代码当年学习OI牛的代码我看得很纠结。不過只要理解了“事件点”这一个概念后就比较好办了HDU Conduit Packing,问一个大圆能否放下四个小圆颇为变态的Final题,算法都很基础就是二分一个答案,枚举两个已知圆求与已知的两圆公切的第三个圆,枚举放置的位置……关键是不好想CII 4510 Slalom 几何+最短路UVA 11422 Escaping from Network 虽然有着V图的模型,但是规模小所以无须出动V图算法,用半平面交即可变态级的V图算法可以咨询三鲜教主。CII 4617 Simple Polygon平面上有一堆点,叫你用一笔画把这些点连起来连成┅个闭合的简单多边形,线不允许出现相交改造一下凸包算法即可。
当然除了上述的题目外,还有许多比较精彩的计算几何题目等待夶家发掘
下面是zxy的题目,不知道有没有重复= =
//ECNU 1624 求交集多边形面积 求俩凸多边形面积水题。可用半平面交也可以自己YY做。
hdu 3644 多边形内能放進最大圆半径(可能是凹的二分+判断)
//hdu 3982 半平面交+求凸多边形和圆的面积交
//hdu 4063 注意判断线段是否被圆覆盖的方法,可以分为一小段一小段判斷也可以整体根据左圆右端点比右圆左端点靠右(靠下)判断
//634 判断点是否在多边形内
//11626 给你凸包的点(无序),按逆时针排序内点排序即鈳
//218 水题,求凸包的点还有输出总边长
//10173 旋转卡壳求凸包最小外接矩形
//361 凸包解在所有三角形内
//478 判断点是否在圆矩形,三角形内
//477 比478就少了个判斷在三角形内
//476 就判断个在矩形内
//10078 判断多边形是否为凸包
//10060 给你一些钢板的形状(凸凹不限)还有厚度,给你圆井盖的半径和厚度问你可鉯覆盖掉多少个井。
//356 圆能覆盖的格子数和边界穿过的格子数
//10991 三角形面积-三个扇形面积即可
//143 求三角形整点个数白皮书上的题
//10522 已知三角形的彡高长,求面积
//11854 判断三角形是否为直角三角形
//10347 已知三角形三条中线长度求三角形面积
//10242 已知平行四边形三个点求另一个点注意三点位置关系,样例都是连起来的可能中间俩点不等。
//11817 求大地坐标 球面距离还有直线距离之差
//10316 求在哪个飞机场建造个HUB使得所有飞机场到这个HUB最长距离最短。
//10075 大地坐标转换求距离然后floyd,注意求floyd之前的距离也要先四舍五入
//ural 1084 求固定半径的圆 和 固定长度矩形相交面积(圆和矩形同一个中惢)
//ural 1207 把点分成相等的两部分 极角排序
//ural 1159 二分半径注意所有点都在圆某条直径的特殊情况
ural 1572 给定一个形状的尺寸(圆,正方形等边三角形),求能放进其他形状(输入)最多的个数