计算几何
文章平均质量分 77
sdj222555
这个作者很懒,什么都没留下…
展开
-
POJ 1873 The Fortified Forest 凸包+枚举
题意:一个人有好多树,这些树有坐标,有价值,以及砍下这颗树能造多长的篱笆。现在他要保护自己的树不被别人砍,就需要用篱笆把树围起来,但是需要从自己的树中砍下来几棵树造成篱笆,所以问题就来了,如何砍最少价值的树把剩余的树围起来。如果价值一样,就找砍树数量少的。看到这道题的数据范围我就笑了,直接指数级别的枚举就行了。然后求凸包。/*ID: sdj22251PROG: su原创 2012-03-27 09:39:56 · 704 阅读 · 0 评论 -
POJ 2318 TOYS 二分+叉积
入门计算几何判断在哪个区域内只需看跟某条线的叉积即可可以保证单调性,所以可以进行二分#include #include #include #include #include #include #include #include #include #include #include #define MAXN 100001#define MAXM原创 2013-10-24 22:24:42 · 722 阅读 · 0 评论 -
POJ 1556 The Doors 计算几何+ 最短路
计算几何入门枚举任意两个点,看连成的线段之间是否交于其他线段,如果中间没交与其他线段,表明两个点可通过直线到达然后将所有的这种都跑出来。 建图求最短路即可#include #include #include #include #include #include #include #include #include #include #includ原创 2013-10-24 22:32:30 · 877 阅读 · 0 评论 -
POJ 3347 Kadj Squares
贪心即可对于一个方块。如果比之前的方块边长小。就可以塞到之前方块的下面如果比之前的方块边长大。 就要靠在之前的所有方块上比一下。找最大的一个位置就是。#include #include #include #include #include #include #include #include #include #include #include #de原创 2013-10-24 22:43:03 · 685 阅读 · 0 评论 -
POJ 1039 Pipe
枚举任意两个点作为直线。看是否能穿越整个管道即可。判断相交使用叉积。#include #include #include #include #include #include #include #include #include #include #include #define MAXN 100005#define MAXM 211111#def原创 2013-10-24 22:46:21 · 717 阅读 · 0 评论 -
ZOJ 3570 Lott's Seal 计算几何
题目大意是有一些点,然后我们要用一个六角星形将任意这些点连成的直线覆盖。 并且这些点构成的凸包面积必须满足小于某个值六角星形的中心点和半径已经给定了。就是一个判定问题了。首先要判断所有点是否都在六角星形内我们观察这个形状,发现是两个三角形组成的图形。那么只需判断某个点是否在某个三角形内即可这里就用到叉积就行了。然后对所有点求个凸包。求个面积然后看这些原创 2013-10-30 17:22:35 · 997 阅读 · 0 评论 -
POJ 3525 Most Distant Point from the Sea 二分+半平面交
题目就是求多变形内部一点。 使得到任意边距离中的最小值最大。那么我们想一下,可以发现其实求是看一个圆是否能放进这个多边形中。那么我们就二分这个半径r,然后将多边形的每条边都往内退r距离。求半平面交看是否存在解即可#include #include #include #include #include #include #include #include #inc原创 2013-11-01 13:02:36 · 1185 阅读 · 0 评论 -
POJ 1113 凸包
易知先求凸包,然后圆弧部分跟每个内角有关经过计算发现圆弧总共加起来就是一个圆#include #include #include #include #include #include #include #include #include #include #include #define MAXN 111111#define MAXM 211111#def原创 2013-11-01 12:48:30 · 975 阅读 · 0 评论 -
POJ 1265 pick定理
pick公式:多边形的面积=多边形边上的格点数目/2+多边形内部的格点数目-1。原创 2013-11-01 12:51:45 · 971 阅读 · 0 评论 -
POJ 1755 Triathlon 半平面交
看的这里:http://blog.csdn.net/non_cease/article/details/7820361题意:铁人三项比赛,给出n个人进行每一项的速度vi, ui, wi; 对每个人判断,通过改变3项比赛的路程,是否能让该人获胜(严格获胜)。思路:题目实际上是给出了n个式子方程,Ti = Ai * x + Bi * y + Ci * z , 0原创 2013-11-01 12:56:59 · 1393 阅读 · 0 评论 -
POJ 计算几何入门题目推荐
计算几何题的特点与做题要领:1.大部分不会很难,少部分题目思路很巧妙2.做计算几何题目,模板很重要,模板必须高度可靠。3.要注意代码的组织,因为计算几何的题目很容易上两百行代码,里面大部分是模板。如果代码一片混乱,那么会严重影响做题正确率。4.注意精度控制。5.能用整数的地方尽量用整数,要想到扩大数据的方法(扩大一倍,或扩大sqrt2)。因为整数不用考虑浮点误差,而且运算比浮点转载 2013-10-17 12:56:02 · 1585 阅读 · 0 评论 -
POJ 2074 Line of Sight
思路很清晰。首先排除掉不在house和pro之间的障碍物然后对每个障碍物,将站在直线上不能看到整个house的区间求出来。最后对这些区间,扫一遍,贪心求一下即可#include #include #include #include #include #include #include #include #include #include #inclu原创 2013-10-24 22:53:49 · 1050 阅读 · 0 评论 -
POJ 1584 A Round Peg in a Ground Hole 圆是否包含在凸包内
首先判断是否是逆时针给出的多边形。用叉积判断即可。如果不是逆时针,就reverse成逆时针的。然后判断是否是凸包,还是用叉积。然后就判断圆心是否在凸包内很好判断,用叉积,逆时针扫一遍点就行。然后就要判断圆心到各个边得距离要大于半径。这里最好用叉积,以免丢了精度,叉积就是那个四边形的面积,除以边长就是点到边得垂直距离。#include #includ原创 2013-10-24 22:51:20 · 891 阅读 · 0 评论 -
POJ 3714 Raid 最近点对
求最近点对,只不过这两个点需要属于不同的集合,那么就给两个集合的点分别标记一个id号,在计算时,两个集合合并起来,并排序,递归求解,只不过,求两点距离时,如果id号是同一集合的,直接返回一个很大的数就行了,这样就跟求一个集合的最近点对没什么区别了。/*ID: sdj22251PROG: calfflacLANG: C++*/#include #include #include原创 2011-08-18 21:00:09 · 939 阅读 · 0 评论 -
HDU4606 Occupy Cities 计算几何+最小路径覆盖
题目大意如下在一个二维坐标系中,有n个城市,坐标给出来了,然后有p个士兵要去占领这n个城市,但是路上有m个路障,都是线段,士兵不能越过路障前进。每个士兵都有相同容量大小的一个干粮袋,每到一个城市他就能补充满自己的干粮袋。中途走路时走一个单位长度就消耗一个单位的干粮。现在问的是这些个干粮袋最小的容量是多少,前提是保证p个士兵能占领完这n个城市,城市被占领顺序也是题目给好的,必须遵守原创 2013-08-15 09:31:47 · 1318 阅读 · 0 评论 -
POJ 3304 Segments 线段交
计算几何入门将所有的线段的端点存起来,枚举任意两个端点构成的直线,看是否能穿过所有线段即可#include #include #include #include #include #include #include #include #include #include #include #define MAXN 100005#define MAXM 21原创 2013-10-24 22:26:30 · 607 阅读 · 0 评论 -
POJ 1269 Intersecting Lines 直线交
计算几何入门无非是平行, 重合和相交#include #include #include #include #include #include #include #include #include #include #include #define MAXN 100005#define MAXM 211111#define eps 1e-8#defi原创 2013-10-24 22:29:58 · 671 阅读 · 0 评论 -
POJ 2653 Pick-up sticks 线段交
直接暴力即可,因为题目中说了top line不超过1000个。所以理论复杂度不会非常大#include #include #include #include #include #include #include #include #include #include #include #define MAXN 100005#define MAXM 211111#原创 2013-10-24 22:34:02 · 758 阅读 · 0 评论 -
POJ 1066 Treasure Hunt 线段交
要到达目标点。必然会经过一系列的线段在这些线段上,在哪里开门都是一样的。所以只需枚举边上的点到目标的点连接的线段中间交多少线段,求最小即可#include #include #include #include #include #include #include #include #include #include #include #define原创 2013-10-24 22:35:50 · 677 阅读 · 0 评论 -
POJ 1410 Intersection 线段交
计算几何入门判断线段是否与一个矩形相交包含在内部也算那么判断是否在矩形内部,只需叉积即可判相交就判断跟矩形的四条线段相交即可#include #include #include #include #include #include #include #include #include #include #include #define原创 2013-10-24 22:37:44 · 725 阅读 · 0 评论 -
POJ 1696 Space Ant 贪心
每次选择向左偏移角度最小的下一个点即可。或者说左边点最多的点。#include #include #include #include #include #include #include #include #include #include #include #define MAXN 100005#define MAXM 211111#define eps 1e-原创 2013-10-24 22:39:24 · 639 阅读 · 0 评论 -
POJ 2826 An Easy Problem?!
这题的恶心程度一流。卡精度貌似丧心病狂。。WA了一版。最后G++过不了,C++过的。考虑好DISCUSS中的情况基本就行了、#include #include #include #include #include #include #include #include #include #include #include #define MAXN 100原创 2013-10-24 22:44:57 · 850 阅读 · 0 评论 -
POJ 3449 Geometric Shapes
判断多边形是否相交只需把多边形拆成一条条的线段,然后看线段是否相交即可其中需要注意的是正方形顶点的求法,最好不使用三角函数去求。看我代码中的方法。然后就比较好搞了#include #include #include #include #include #include #include #include #include #include #includ原创 2013-10-24 22:48:23 · 1423 阅读 · 0 评论 -
POJ 3384 Feng Shui 半平面交
题目给出两个圆和一个多边形问是否能让两个圆在多边形内。并且覆盖的面积最大圆的半径为r,我们则让多边形的每条边都往内部退r距离。然后求半平面交得出的点集中,最远的两个点则是两圆的圆心即可#include #include #include #include #include #include #include #include #include原创 2013-11-01 12:59:45 · 1255 阅读 · 0 评论