
计算几何
文章平均质量分 75
new_wu
这个作者很懒,什么都没留下…
展开
-
poj 1696 Space Ant(叉积的性质,做极角排序)
//以下为原blog搬迁过来的内容 【题目大意】:有一只M11,它每天必须靠走路到某些点吃植物维系生命,但是由于身体条件的限制,它不能向右转,也不能走交叉的路,问你怎么走能吃到最多的路径。(起点是(0,y)。y表示最下做左端的点的纵坐标) 【解题思路】:一拿到题目,几乎立刻就想dfs一遍。之后想想,在练习计算几何嘛。这个时候利用了叉积的性质。取一个点出来,跟当前所在的点构原创 2012-03-13 01:19:49 · 755 阅读 · 0 评论 -
poj 1971 Parallelogram Counting(数学题)
【题目大意】:给出n个点,求出这n个点能够组成平行四边形的个数。 【解题思路】: 1)平行四边形的对角线的中点一定相交。 如果有两条不同线段的中点相交,就是一个平行四边形 2)利用点坐标求出中点的集合,离散化后求出同个中点的出现的个数k。 3)对于每一个k ,利用组合公式C(k,2)的答案就是平行四边行的个数 【代码】: #include #include #inclu原创 2012-03-13 11:05:08 · 497 阅读 · 0 评论 -
hdoj 1221 Rectangle and Circle(判点的位置)
【题目大意】:给出一个平行于x轴长方形,和圆,判断其是否相交 【解题思路】:简单题,1)判长方形四个点是否都在圆内,有就不相交 2)判圆心到长方形每条边的距离是否都大于圆的半径,是就不相交 【代码】: #include #include #include #include #include #include #include #include #includ原创 2012-03-17 02:58:51 · 439 阅读 · 0 评论 -
hdoj 4195 Regular Convex Polygon(余弦定理+正凸多边形性质)
【题目大意】:给你三个顶点,这三个点是一个正多边形上的顶点,问该正多边形的顶点有几个。 【解题思路】:三个点,三角形-->外接圆-->必定也是该凸多边形的外接圆- 设顶点数为i,我们只要知道,三角形任意两点所对应的圆心角是否是2pi/n的倍数就可以了。。。。i很小,枚举就可以了。 角度用余弦定理求 【代码】: #include #include #includ原创 2012-04-03 00:06:22 · 1638 阅读 · 0 评论 -
poj 2420 A Star not a Tree?(贪心+求多边形费马点)
【题目大意】:找出一个点,使得到多边形每个点的距离和最小。输出最小距离和。 【解题思路】:求的是一个多边形的费马点。三边以上没有公式,我们可以使用随机化变步长贪心法来解这道题。 【随机化变步长贪心法】:随机选取一个点,再取一个步长,朝这个方向走,如果新位置到各点距离比原来小,则走过去。直到走不动为止,再缩小步长。直到步长小于题目精度。 【代码】: #includ原创 2012-03-25 21:36:33 · 2528 阅读 · 0 评论 -
zoj 1090 The Circumference of the Circle(海伦公式+正弦定理)
【题目大意】:给出三角形三个点,求外接圆周长。 【解题思路】: 由正弦定理,a/sinA=b/sinB=c/sinC=2R,得sinA=a/(2R),又三角形面积公式S=(bcsinA)/2,所以S=(abc)/(4R),故R=(abc)/(4S). 然后面积S由海伦公式来求。 之后没了.... 【代码】: #include #include #includ原创 2012-03-31 01:05:49 · 661 阅读 · 0 评论 -
poj 3737 UmBasketella(三分+求导)
【题目大意】:给出一个圆锥体的表面积,求最大的体积,并输出其半径和高。 【解题思路】:下午在比赛的时候是直接求导推的公式做的。 晚上回来想想其实三分极值可以做,但是一直wa,不知道为什么。 我原来三分是这么写的 mid1=(low+high)/2.0; mid2=(mid+high)/2.0; 但是一直过不了,后来改成mid1=原创 2012-03-26 00:09:53 · 651 阅读 · 0 评论 -
poj 3335 Rotating Scoreboard(判断多边形是否有核+半平面交)
【题目大意】:顺时针给出n个点,判断多边形是否有核。 【解题思路】:半平面交模版测试 【代码】: #include #include #include #include #include #include #include #include #include #include #include using原创 2012-04-10 12:50:55 · 887 阅读 · 0 评论 -
poj 1279 Art Gallery(求多边形核的面积+半平面交)
【题目大意】:顺时针给出n个点,求多边形核的面积 【解题思路】:半平面交模版测试 【代码】: #include #include #include #include #include #include #include #include #include #include #include using namesp原创 2012-04-10 13:17:18 · 713 阅读 · 0 评论 -
spoj 145 Aliens(增量法+最小包围圈)
【题目大意】:给出你T个case。每个case有n个点,叫你求这个点的半径和圆心坐标,使得这个圆覆盖所有的点(n 【解题思路】:曾经在zoj上做过一道最小圆的覆盖,但是那道题的点只有100,当初是暴力做的。显然碰到这个数据量是行不通的,我们可以采取dfs进行增量,或者利用随机重排进行增量,二者在spoj上测试的时间差距不大,网络模版testing。 【代码】: dfs实现增量原创 2012-04-11 00:23:51 · 1306 阅读 · 0 评论 -
poj 1873 The Fortified Forest(凸包+枚举)
【题目大意】:给出n棵树,每棵树有坐标,权值,和长度,现在要砍下其中的某些树,来做围栏来把剩下的树围起来,问损失的数最小价值是多少。 【解题思路】:明显求围栏就是一个凸包问题,由于树最多只有13棵,所以我们可以直接枚举哪些树留下,来求凸包,取最小值即可。。 【代码】: #include #include #include #include #include #inc原创 2012-04-12 01:26:45 · 607 阅读 · 0 评论 -
poj 3348 Cows(凸包+叉积求面积)
【题目大意】:给出一个多边形,求其凸包面积,答案/50取整输出 【解题思路】:水题,凸包模版+叉积求多边形面积 【代码】: #include #include #include #include #include #include #include #include #include #include #include原创 2012-04-12 15:54:17 · 951 阅读 · 0 评论 -
poj 1113 Wall(Graham扫描法求凸包)
【题目大意】:给出一些点,求凸包周长,并加上给定圆周长 【解题思路】:极角排序,然后求凸包。模版testing 【代码】: #include #include #include #include #include #include #include #include #include #include #include原创 2012-04-11 23:48:04 · 573 阅读 · 0 评论 -
hdoj 2436 Collision Detection(数学型计算几何)
【题目大意】:判断一个长方体与一个球体是否接触 【解题思路】:接触的话也即存在一个点(x,y)成立:r*r>=(x-cx)*(x-cx)+(y-cy)*(y-cy)+(z-cz)*(z-cz) 只要要找到这个离球心最近的点,就可以了。 分开对待各维(它们互不相关), x=cx; if(x>maxx)x=maxx; if(x 这样的x就是长方体内离cx最近的点的x坐标了,其原创 2012-02-29 01:02:21 · 692 阅读 · 0 评论 -
zoj 3500 Electron Cloud(圆缺公式)
【题目大意】:给出两个球心坐标及半径,求球交 【解题思路】:圆缺公式~~模版测试 【代码】: #include #include #include #include #include #include #include #include using namespace std; const double pi = 3.14159265358979323原创 2012-03-04 01:30:51 · 687 阅读 · 0 评论 -
poj 2704 Line of Sight(数学型计算几何)
【题目大意】给出房子的坐标表示为(x1,x2,y)代表房子所在二维坐标系上的位置,给出路的坐标表示(rx1,rx2,ry)同样表示路在二维坐标系上的位置。然后给出n个障碍物,每个障碍物的坐标表示是(a[i].x1,a[i].x2,a[i].y),问在路上避过障碍物可以连续的看到房子的最远距离是多少。 【解题思路】先对房子和障碍物进行连线构建投影,再按照投影得到在路上的坐标进行排序,最后取原创 2012-03-09 04:56:56 · 548 阅读 · 0 评论 -
poj 3347 Kadj Squares(扩大数据运算的典型应用+映射)
//以下为原blog搬迁过来的内容 【题目大意】:给出矩形的变长,确保矩形从左往右摆放,问摆放完毕后从上往下看可以看见多少个矩形。 【解题思路】:将矩形的边长映射到x轴上,变成一个线段的覆盖的问题。可惜,做了n个小时还是wa。最后参考了别人的想法乘了个根号2,把所有数据都整数化,就a了。应该是wa在精度上,研究中...... 【代码】: #inclu原创 2012-03-13 01:21:03 · 595 阅读 · 0 评论 -
poj 2826 An Easy Problem?!(线段交,细节题)
//以下为原blog搬迁过来的内容 【题目大意】:给出两条线段,问这两条线段能够接住多少水。 【解题思路】:先大概估算了一下,这道题一共wa了不下20次。题目的大意不难,难在下面几个注意点上: 1)线段不能平行或者重合 2)不能够出现斜率为0的线段(10+wa以上才发现)原创 2012-03-13 01:22:23 · 760 阅读 · 0 评论 -
poj 1039 Pipe(直线与线段交+枚举直线)
//以下为原blog搬迁过来的内容 【题目大意】:给出n个水管的上接点(下接点的坐标为上接点的横坐标,和纵坐标减一),然后问你从管的左端射进一束光,在管里能够跑多远,输出到达最远点的横坐标。 【解题思路】:一开始觉得不好做,因为入口的点无法确定。后来,在纸上yy了几组数据,觉得好像是枚举一个管的上接点和下接点组成一个直线就可以了。上网搜了一下果然是这样,就开始动笔写了。原创 2012-03-13 01:23:34 · 770 阅读 · 0 评论 -
poj 1410 Intersection(判矩形和线段相交。。细节多)
//以下为原blog搬迁过来的内容 【题目大意】:给出一条线段和一个矩形,判断线段和矩形是否相交。 【解题思路】:判给出的线段与矩形的每条线段是否相交(包括相交和非规范相交)。 1、内含也算相交(WA一次) 2、看了discuss,发现题目给出矩形的点并不一定是左上角的点和右下角的点(WA2次) 【代码】: #include原创 2012-03-13 01:18:23 · 663 阅读 · 0 评论 -
poj 1066 Treasure Hunt(判断线段相交)
//以下为原blog搬迁过来的内容 【题目大意】:给定一个矩形,和矩形内的墙,矩阵内有一个金矿,问你从矩阵外面进去直到金矿要至少穿越多少墙。 【解题思路】:一拿到题就没头没脑的枚举了所有边上的点,然后再直接就判线段相交。1A。结果反过来想,好像这种做法有点问题。看了discuss,有枚举终点的,有旋转的各种做法。以后再一一尝试。不过怎么感觉自己写的都不是正解。原创 2012-03-13 01:17:19 · 543 阅读 · 0 评论 -
poj 2653 Pick-up sticks(判断线段是否相交)
//以下为原blog搬迁过来的内容 【题目大意】:给出n条木棍,然后依次摆放在桌面上,每次摆放的木棍的起始点和终止点给定,求最上面的木棍的标号 【解题思路】:线段判相交就是了,水题 【代码】: #include #include #include #include #include #include #include #includ原创 2012-03-13 01:15:53 · 616 阅读 · 0 评论 -
poj 1556 The Doors(最短路+判断线段相交)
//以下为原blog搬迁过来的内容 【题目大意】:给出一个10*10的平面,对于平面上的每一个竖的截线都可能会有3面墙,题目会给出墙的端点坐标。然后要求求出(0,5)到(10,5)不穿过墙的最短路。 【解题思路】:枚举两个点,连接成线段,判断有木有墙与这题线段相交,如果没有的话,就可以前进。数据量比较小,求出所有直达的点后跑一次floyed就好了。 【代码原创 2012-03-13 01:14:25 · 879 阅读 · 0 评论 -
poj 1296 Noise Effect(判断线段相交,并求交点)
//以下为原blog搬迁过来的内容 【题目大意】:给出n组数据,每组数据四个数描述两条直线,判断直线重合,平行,或者相交。 【解题思路】:按照重合,平行,相交的顺序依次判断就是。主要是为了测试计算几何模版 【代码】: #include #include #include #include #include #include #in原创 2012-03-13 01:12:48 · 878 阅读 · 0 评论 -
poj 3304 Segments(利用叉积求是否存在直线与所给线段相交)
//以下为原blog搬迁过来的内容 【题目大意】:给出n条线段,问你是否存在一条直线,使得每个线段与该直线至少有一个交点。 【解题思路】:没有思路,没有思路,还是没有思路。然后开始无止境的yy。 因为点的个数比较小,感觉n^3可以过,就开始yy枚举直线。一开始以为单纯的枚举之后就可以了,后来才发现要将左右线段投影到枚举出的直线上,取其相互覆盖的部分做垂线,这条线原创 2012-03-13 01:10:32 · 657 阅读 · 0 评论 -
poj 2398 Toy Storage(判断点在多边形内,叉积)
//以下为原blog搬迁过来的内容 【题目大意】:给出一个矩形的左上角的点(x1,y1)以及右下角的点(x2,y2),并给出n条线段,线段表示为(l,y1),(r,y2),用于将矩形切割成n+1块,分别标记为0到n。再给出m个点,求包含t(t>0)个点的有几块。 【解题思路】:已知给出三个点a,b,c,通过叉积可以判断c在线段a,b的哪一侧,若叉积小于0,则在线段左侧,原创 2012-03-13 01:08:36 · 665 阅读 · 0 评论 -
poj 2318 Toys(叉积判点在线段的哪一侧)
//以下为原blog搬迁过来的内容 【题目大意】:给出一个矩形的左上角的点(x1,y1)以及右下角的点(x2,y2),并给出n条线段,线段表示为(l,y1),(r,y2),用于将矩形切割成n+1块,分别标记为0到n。再给出m个点,求举行的每一块分别包含几个点。 【解题思路】:已知给出三个点a,b,c,通过叉积可以判断c在线段a,b的哪一侧,若叉积小于0,则在线段左侧,等原创 2012-03-13 01:07:18 · 816 阅读 · 0 评论 -
hdoj 3756 Dome of Circus(三分)
【题目大意】:给出一堆三维的点,求一个最小的圆锥覆盖所有的点。 【解题思路】:这道题上一次做是暑假之后的一次组队赛的题目。其实自从某一次yy到三分极值这种方法之后,顿悟。队友说,一切三分均可秒。 哎...我自惭形秽啊... 首先,圆锥任何一个沿高的截面的形状都是一样的,所以对于每一个点都会在某一个截面上,而截面均相同。 这样,我们完成了首步,某种程度上类似于降维的思想。其次,我原创 2012-03-12 10:26:27 · 534 阅读 · 0 评论 -
poj 1228 Grandpa's Estate(凸包+判凸包边上的点数)
【题目大意】:给出n个凸包上的点(凸包上还有一一些其他的点丢失了),问能否用这些点唯一的确定一个凸包。 【解题思路】:看懂题目大意是第一步。头20分钟一直不知道给定的点是凸包上的点,恶心了很久还是一点思绪都没有。如果给定的点是在凸包上的点,我们不妨通过这些点求一个凸包,如果这个凸包是唯一的必须满足以下的几个条件: 1、所有给定的点都在凸包上。2、每条边上必须至少有3个点。如果一条边上只原创 2012-04-12 15:03:46 · 1031 阅读 · 0 评论