二维计算几何
文章平均质量分 81
lfj200411
这个作者很懒,什么都没留下…
展开
-
POJ 1696 Space Ant
#include #include #include #include using namespace std; const double eps=1e-7;//精度 const int INF=1<<29; struct Point{ double x,y; Point(double x=0,double y=0):x(x),y(y){} }; typedef Point Vecto原创 2013-08-01 19:29:41 · 694 阅读 · 2 评论 -
UVA 10867 Cutting a Polygon
呵呵 又A不过去 还搜不到题解 给跪 给组高端样例 input: 9 1 0 0 0 2 1 1 2 2 3 1 4 2 5 1 6 2 6 0 0 2 2 0 0 0 output: 2.828 //大白p263 #include #include #include #include #include #include #include原创 2013-08-10 15:56:36 · 648 阅读 · 0 评论 -
UVA 10321 Polygon Intersection
点击打开链接 题意: 求两凸多边形相交所得多边形 点排序输出 //大白p263 #include #include #include #include #include #include #include #include #include #include using namespace std; const double eps=1e-8;//精度 const原创 2013-08-10 14:07:40 · 728 阅读 · 0 评论 -
UVA 313 Intervals
点击打开链接 这题got WA again again and again 求指教 //大白p263 #include #include #include #include #include #include #include #include #include #include using namespace std; const double eps=1e-8;原创 2013-08-09 20:54:11 · 711 阅读 · 0 评论 -
UVA 10652 Board Wrapping
点击打开链接 题意: 给多个矩形和其被顺时针旋转的角度 求矩形面积和凸包面积的比 验证模板题 //大白p263 #include #include #include #include #include #include #include #include #include #include using namespace std; const double ep原创 2013-08-12 14:10:18 · 673 阅读 · 0 评论 -
UVA 11168 - Airport
题意: 给出平面上n个点,找一条直线 使得所有点在直线的同侧(也可以再直线上) 且到直线的距离之和尽可能小 求最小的平均距离 思路: 要求所有点在直线同侧,因此直线不能穿过凸包。不难发现,选择凸包上的边所在的直线是最优的。关键是求所有点到直线的距离,我们可以枚举每一条凸包上的边,把直线用点斜式表示出来,然后通过一般式求出所有点到直线的总距离。 由于所有点在Ax+By+C = 0的同一原创 2013-08-12 15:04:18 · 718 阅读 · 0 评论 -
UVA 1298 - Triathlon
点击打开链接 题意: 铁人三项比赛分成连续的三段:游泳、自行车和赛跑。现在每个单项比赛的长度还没定,但已知各选手在每项比赛中的平均速度(假定该平均速度和赛程长度无关),所以你可以设计每项比赛的长度,让某个特定的选手获胜。你的任务是判断哪些选手有可能获得冠军(并列冠军不算)。 解法: 假设比赛送长度为1,其中游泳长度x,自行车长度y,赛跑长度1-x-y,则选手i打败选手j的条件是: x/v原创 2013-08-12 19:59:44 · 844 阅读 · 0 评论 -
UVA 1453 - Squares
点击打开链接 题意: 给你一大波正方形左下角的点及其边长 实际上就是40W个点 然后求平面上最远两点的距离的平方 旋转卡壳模板题 //大白p263 #include #include #include #include #include #include #include #include #include #include using namespace s原创 2013-08-12 15:17:44 · 880 阅读 · 0 评论 -
1396 - Most Distant Point from the Sea
点击打开链接 题意: 按顺序给出一小岛(多边形)的点 求岛上某点离海最远的距离 解法: 不断的收缩多边形(求半平面交) 直到无限小 二分收缩的距离即可 如图 //大白p263 #include #include #include #include #include #include #include #include #include #includ原创 2013-08-12 16:48:37 · 722 阅读 · 0 评论 -
2013 多校第七场 hdu 4667 Building Fence
题意: 给一些互不相交的圆和三角形 求一个最短的围栏长度将他们包围在内 解法1: 将圆细分成2000个点加入点集(10W个),做凸包(nlogn),比赛的时候shuangde想到了,但是细分成500个点就超时了 精度不够 结束后看到 沉溺大神的博客 他也是使用此方法。。。。。然后G++900+ms能过 给跪 后来改了下模板代码 全加了引用和 inline关键字 几何模板原创 2013-08-14 10:56:04 · 890 阅读 · 0 评论 -
ZJU 3733 长沙现场赛 H Skycity
这题做的我真是李菊福了 下午做重现的时候一直调不出样例 晚上拉到自己电脑上一跑立马出了样例 哭翔 晚上看了个大神用二分过的 其实可以不用二分,直接int count = (int )(2*PI/(最小长度对应当前半径的角度)) 因为强制转换丢掉了小数部分(余数) 所以就可以得到最多count边形 (再多边长就会小于最小长度了) 最后int cnt=(int )(ful原创 2013-11-24 23:19:29 · 1947 阅读 · 0 评论 -
计算几何入门题推荐、计算几何题目合集
计算几何题的特点与做题要领: 1.大部分不会很难,少部分题目思路很 巧妙 2.做计算几何题目,模板很重要,模板必须高度可靠。 3.要注意代码的组织,因为计算几何的题目很容易上两百行代码,里面大部分是模 板。如果代码一片混乱,那么会严重影响做题正确率。 4.注意精度控制。 5.能用整数的地方尽量用整数,要想到扩大数据的方法(扩大一倍, 或扩大sqrt2)。因为整数不用考虑浮点误差,而且运算转载 2013-08-10 14:29:57 · 908 阅读 · 0 评论 -
UVA 303 Pipe
点击打开链接 题意: 求光线能达到的最大横坐标 注意光线可以和管道重合 也可以经过转折点 解法: 枚举每种光线是否能通过每个转折点的截面(线段)即可 //大白p263 #include #include #include #include #include #include #include #include #include #include using原创 2013-08-09 16:26:05 · 620 阅读 · 0 评论 -
UVA 10585 Center of symmetry
点击打开链接 题意: 先求出所有点的重心 然后根据重心找对称点 看对称点是否都存在即可 //大白p263 #include #include #include #include #include #include #include #include #include #include using namespace std; const double eps=1原创 2013-08-08 21:13:25 · 719 阅读 · 0 评论 -
POJ 1269 Intersecting Lines
点击打开链接 题目大意: 给N组数据 每组两条直线 输出交点POINT 平行NONE 重合LINE #include #include #include #include using namespace std; const double eps=1e-7;//精度 const int INF=1<<29; struct Point{ double x,y;原创 2013-08-01 19:40:30 · 536 阅读 · 0 评论 -
HDU 4637 Rain on your Fat brother 暑期多校第四场 1009
点击打开链接 题目大意: 胖哥追妹纸 追的同时下雨 求妹纸穿过水滴的time 思路: 同官方解题报告 //cas忘了++ WA了20次你敢信 第一次做圆的几何 还以为模板有问题一直检查 //代码包含了本题没有用到的模板 所以略长 另外代码也写龊了 //大白p263 #include #include #include #include #include原创 2013-08-02 14:30:38 · 869 阅读 · 2 评论 -
hdu 4629 Burning 暑期多校第三场 1006
点击打开链接 题目大意: 有许多三角形可能互相重叠 分别输出重叠了n片到只重叠了1片的面积 解法1:官方题解切多边形,木有尝试 解法2:即以下代码,参考http://www.cnblogs.com/woaishizhan/archive/2013/08/01/3229234.html 解法3:本人尝试用PSLG生成所有互不覆盖的多边形 然后遍历每个三角形判断多边形是否在三角形内 最原创 2013-08-03 00:12:48 · 886 阅读 · 0 评论 -
UVA 11437 Triangle Fun
点击打开链接 水题 可以证明PQR面积是ABC面积的1/7 详细证明见http://www.cnblogs.com/freezhan/archive/2012/11/11/2776472.html 或者求交点暴力计算也是可以的 //大白p263 #include #include #include #include #include #include #include原创 2013-08-03 15:40:37 · 597 阅读 · 0 评论 -
POJ 2187 Beauty Conteset
点击打开链接 题目大意: 给n个点 求其中相距最远的点的距离 思路: n 枚举每两个点O(n^2)会超时 所以先求凸包O(n logn) 然后做旋转卡壳O(n)求得凸包最大直径即可 //大白p263 #include #include #include #include #include #include #include using namesp原创 2013-08-03 17:28:04 · 570 阅读 · 0 评论 -
UVA 11178 Morley's Theorem
点击打开链接 题意: 给A,B,C 求三分角平分线交的的D,E,F坐标 //大白p263 #include #include #include #include #include #include #include using namespace std; const double eps=1e-9;//精度 const int INF=1<<29; const dou原创 2013-08-04 12:09:51 · 521 阅读 · 0 评论 -
HDU 3756 Dome of Circus
点击打开链接 题意: 给n 求一个全包含了所有点的最小体积锥形 解法: 把x y z映射成sqrt(x*x+y*y),z 即可转化为二维坐标 然后求一个全包含了所有点的三角形 使得底边的平方*高最小 三分高,暴力求底即可 //大白p263 #include #include #include #include #include #include #incl原创 2013-08-04 17:34:11 · 587 阅读 · 0 评论 -
UVA 1301 Fishnet
点击打开链接 题意: 给一个渔网样的坐标 求面积最大的网格的面积 //大白p263 #include #include #include #include #include #include #include using namespace std; const double eps=1e-6;//精度 const int INF=1<<29; con原创 2013-08-07 18:37:57 · 612 阅读 · 0 评论 -
HDU 4643 GSM 暑期多校联合训练第五场 1001
点击打开链接 我就不说官方题解有多坑了 V图那么高端的玩意儿 被精度坑粗翔了 AC前 AC后 简直不敢相信 只能怪自己没注意题目For the distance d1 and d2, if fabs(d1-d2) 有空再补充V图的做法吧。。本人也是第一次接触V图 //大白p263 #include #include #include #incl原创 2013-08-07 02:07:40 · 1416 阅读 · 2 评论 -
UVA 10556 Biometrics
点击打开链接 解法: 呵呵 double精度问题暴力旋转匹配没法过 也许高精度可以 没试过 参考了大牛的博客 改用整形推公式过了 #include #include #include using namespace std; struct point { int x,y; point(int x=0,int y=0):x(x),y(y){} }; po原创 2013-08-08 20:34:56 · 809 阅读 · 0 评论 -
convexhull
//大白p263 #include #include #include #include #include #include #include #include #include #include using namespace std; const double eps=1e-8;//精度 const int INF=0x3f3f3f3f; con原创 2014-03-10 17:28:09 · 622 阅读 · 0 评论