
计算几何
文章平均质量分 83
lin375691011
呵呵
展开
-
POJ 2031 Building a Space Station
题目大意:给出n个三维空间的球体,球体是以圆心坐标+半径来表示的,要求在球面上建桥使所有的球联通,求联通所建桥的最小长度。解题思路:刚开始看到三维的有一点蒙,不过精心想了想还是很容易的。1、两个球之间要在球面上建的通路的长度是两球圆心之间的距离减去两球半径。2、当所建通路的长度小于EPS时,就认为它两个已经联通,距离为0。3、自己和自己之间是不可达的。4、最小长原创 2014-01-03 10:43:29 · 5324 阅读 · 0 评论 -
POJ 2451 Uyuw's Concert
学了ZZY的算法,就要过一下他出的题。题目大意:给出一些直线,求半平面交的面积。解题思路:半平面交求面积。下面是代码:#include #include #include #include #include #include #include #include #include #include #include #d原创 2014-08-28 15:21:02 · 4347 阅读 · 0 评论 -
POJ 3335 Rotating Scoreboard
题目大意:同 POJ3130解题思路:同 POJ3130POJ3130解题报告:点此进入注意:两个题给出点的顺序不一样。不要老是抄模版(我不会告诉你我就是这么做的)。下面是代码:#include #include #include #include #include #include #include #include #incl原创 2014-08-28 13:51:59 · 4686 阅读 · 0 评论 -
POJ 3130 How I Mathematician Wonder What You Are!
题目大意:按顺序给出一些点。可以构成一个多边形,问多边形是否有核。解题思路:半平面交。模版题。用的是ZZY的O(Nlogn)的算法。算法大体思路是这样的:step1. 将所有半平面按极角排序,对于极角相同的,选择性的保留一个。 O(nlogn)step2. 使用一个双端队列(deque),加入最开始2个半平面。step3. 每次考虑一个新的半平面: a.whi原创 2014-08-28 13:46:02 · 5191 阅读 · 0 评论 -
POJ 3004 && HDU 1922 Subway planning
题目大意:平面直角坐标系中有一些点代表着一些城市。国家要在(0,0)点设置中心车站并向建设地铁线路,但要求线路是直线。某个城市可以使用地铁线路的前提是它与线路的直线距离不超过d。问最少建设多少条线路才能让所有的城市都能使用地铁。解题思路:扫描线+最小区间覆盖。如图所示:对于任何一个点,都有一个铁路允许的设立的角度区间,在d固定的情况下,点距离原点越远区间越小。因原创 2014-08-26 19:17:58 · 4814 阅读 · 0 评论 -
POJ 2280 && HDU 1661 Amphiphilic Carbon Molecules
题目大意:在平面上有一些点,每个点都有0,1其中一个属性。要求用一条直线将平面分成两部分。其中一部分取属性为0的点,另一部分取属性为1的点。若点在直线上全部取走,问最多能取多少个点。解题思路:扫描线算法。枚举任意一点,其他点依照那一点进行极角排序。扫描获得最大值。注意:1、因为 atan2方式的极角排序有精度误差,在这里需要用叉积方式排序。否则就原创 2014-08-25 20:47:02 · 4581 阅读 · 0 评论 -
POJ 3277 City Horizon
题目大意:给出各个房子阴影的长度(以区间表示)和高度,求阴影的总面积。解题思路:矩形面积并。下面是代码:#include #include #include //#include #include #include #include #include #include #include #include #define eps 1e-8#d原创 2014-08-25 08:21:00 · 4645 阅读 · 0 评论 -
POJ 1177 Picture
题目大意:矩形的周长并(够大意了~)解题思路:扫描线,跟面积并一样,只不过处理周长的时候注意边的增加与减少。下面是代码:#include #include #include #include #include #include #include #include #include #include #include #define e原创 2014-08-24 18:33:40 · 4504 阅读 · 0 评论 -
POJ 3301 Texas Trip
题目大意:在二维坐标系中给出一些点,求能覆盖他们的最小正方形的面积(正方形的边不一定平行坐标轴)解题思路:对于一个点,若坐标轴旋转a度(弧度制),那么X‘=X*cos(a)-Y*sin(a);Y'=Y*cos(a)+X*sin(a);对于角度三分,对于正方形面积是个单峰函数在【0,pi】。有最小值。下面是代码: #include #include原创 2014-08-12 10:30:44 · 5150 阅读 · 0 评论 -
POJ 1765 November Rain
题目大意:有一些屋顶,相当于一些线段(不想交)。问每一条线段可以接到多少水,相对较低的屋顶可以接到高屋顶留下的水(如题图所示)。由于y1!=y2,所以保证屋顶是斜的。解题思路:扫描线,因为对于同一个x最多有25条线段,所以不需要线段树更新。在扫描线的过程中构造出线段与线段之间的关系,好在最后计算每个屋顶可以接多少水。下面是代码:#include #incl原创 2014-08-24 10:07:59 · 4821 阅读 · 0 评论 -
POJ 1151 Atlantis
题目大意:给出原创 2014-08-20 20:53:46 · 4759 阅读 · 0 评论 -
Codeforces Beta Round #1 C. Ancient Berland Circus
果然Java还是不靠谱啊,一个NaN把我整了半天~~题目大意:有一个正多边形,给出任意三个顶点的坐标,求这个正多边形的最小面积。解题思路:首先要知道这三个顶点组成的三角形的外接圆一定是这个正多边形的外接圆。用过计算出三角形的三边长,可以计算出三角型面积,进而推出外接圆半径。可以得到三个圆心角,找出最大公约数,那就是最大角度。就可以计算出多边形面积了~~原创 2014-05-27 20:03:23 · 6344 阅读 · 1 评论 -
POJ 1113 Wall
做完2187之后这1113立马简单了啊。题目大意:给出一个多边形(不一定是凸多边形),求围住这个多边形且离多边形上每一点的最小距离是L的多边形的距离。解题思路:其实看这个题目中的图就能够明白这个题该怎么计算了。1、先求这个多边形的凸包(用的Graham扫描法)。2、求凸包上相邻点之间的距离。这样所有直的墙面的长度就求出来了。3、再加上2*原创 2014-01-06 19:28:51 · 4404 阅读 · 0 评论 -
POJ 2187 Beauty Contest
题目大意:给n个点,求最远两点间距离的平方。虽然这么写的,不要去枚举啊,枚举会超时的……解题思路:1、先用Graham扫描法求一个最大凸包,(求凸包的方法也是今天刚学的)2、再用旋转卡壳法求凸包两点间的最大距离。下面是代码:#include #include struct node{ int x,y;} point[50005],conh原创 2014-01-06 19:02:37 · 4602 阅读 · 0 评论 -
POJ 1584 A Round Peg in a Ground Hole
题目大意:顺时针或逆时针给出n个点,问这n个点围成的图形是不是个凸多边形。如果是凸多边形,给一个圆,以圆心的坐标和半径表示,问这个圆是不是完全在凸多边形内部。解题思路:1、先判断是不是凸多边形。我们可以通过两个向量的叉积来判断第三个点在前两个点的什么方向。(见《算法艺术与信息学竞赛》第三章)因为n个点给出时的方向不确定(有可能是顺时针有可能是逆时针),只要相邻两个向原创 2014-01-05 15:06:23 · 4985 阅读 · 0 评论 -
POJ 1039 Pipe
题目大意:给一条曲折的管道,给出的形式是每一个转弯处口的坐标,求光线从入口进入能到的最远的x点,如果能穿过管子则输出“Through all the pipe.”首先要知道:1、可以通过两向量的叉积来判断是否相交。具体见《算法艺术与信息学竞赛》P348开始向后很多页。2、一条光线从入口到某一点必然会擦过一个上点(管转弯口上壁的点)和一个下点(管转弯口下壁的点)。3、如果原创 2014-01-03 21:45:13 · 6421 阅读 · 0 评论 -
POJ 1265 Area
题目大意:给一个平面上的简单多边形,求边上的点,多边形内的点,多边形面积。解题思路:这个题用了很多知识点:1、以格子点为顶点的线段,覆盖的点的个数为GCD(dx,dy),其中,dxdy分别为线段横向占的点数和纵向占的点数。如果dx或dy为0,则覆盖的点数为dy或dx。2、Pick公式:平面上以格子点为顶点的简单多边形的面积=边上的点数/2+内部的点数+1。3、任意一个多原创 2014-01-02 20:43:24 · 37666 阅读 · 3 评论 -
POJ 1408 Fishnet
题目大意:有一个1*1的正方形,分别给出下,上,左,右边每个边上的n个点,对边对应点连线,问这些线段相交的最大的四边形面积是多少(面积最大的定义是必须当前面积内没有更小的四边形内含)。解题思路:1、我们可以用一个矩阵来保存所有的点,四边上每个点是输入的,内部的每个点通过线段交点的计算可以计算出来。2、然后枚举任意i-1,i,j-1,j四个点计算四边形的面积,求最大值。在原创 2014-01-04 20:34:50 · 4983 阅读 · 0 评论 -
HDU 3126 Nova [2009 Asia Wuhan Regional Contest Online]
题目大意有n个巫妖,m个精灵,k棵树,他们都有自己的坐标表示自己的位置。巫妖有攻击范围和冷却时间,树有覆盖范围。如果某个巫妖攻击精灵的路线(他俩之间的连线)经过树的覆盖范围,表示精灵被树挡住巫妖攻击不到。求巫妖杀死所有精灵的时间,若无法全部杀死输出-1;解题思路:判断巫妖是否能打到精灵用线段与点的最短距离来判断,若最短距离小于树的覆盖范围,就攻击不到。最小时间可原创 2014-11-09 10:11:24 · 4790 阅读 · 0 评论