![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算几何
文章平均质量分 87
sunrainchy
这个作者很懒,什么都没留下…
展开
-
HUST 1584 摆放餐桌(计算几何)
摆放餐桌Time Limit: 1 Sec Memory Limit: 128 MBSubmissions: 366 Solved: 50DescriptionBG准备在家办一个圣诞晚宴,他用一张大桌子招待来访的客人。这张桌子是一个圆形的,半径为R。BG邀请了很多客人,他很担心他家里的桌子是否足够大才能放得下招待所有客人的盘子。假设所有的盘子的半径都为r,客人们围着桌子而坐原创 2014-02-18 18:54:04 · 1230 阅读 · 0 评论 -
HDU 3007 Buried memory(点集最小圆覆盖 模拟退火解法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3007这题和ZOJ1450是一样的,不过这个题目我换个解法ZOJ1450我是用标准求最小点集覆盖求圆的方法来做的,速度很快对于这一题目,我用的是模拟退火思想,每次像正确结果逼近不过精度一点也不好控制,还有step也一点也不好控制,这些值都不能随便取,要取特定意义的值才行!恶心的是原创 2013-10-01 14:54:04 · 1786 阅读 · 0 评论 -
ZJU 1450 Minimal Circle(平面点集最小圆覆盖)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=450假设当前集合点的最小圆覆盖已经找到,那么现在再加入集合一个点,两种情况,这个点本来就在这个圆内,那么等于不用处理如果这个点在当前圆外,那么可以确定这个点一定是在加入这个点的点集的最小圆覆盖的圆上的点!如果能够确定三个点在圆上,那么这个圆心就确定了!原创 2013-10-01 10:36:40 · 1014 阅读 · 0 评论 -
HDU 4266 The Worm in the Apple(三维凸包内点到表面距离)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4266这个题目还是三维凸包模板题,现场如果遇到这个模板要敲好长时间啊!#include#include#include#include#include#include using namespace std;const int MAXN=1001;const int N = 5原创 2013-09-09 21:49:09 · 916 阅读 · 0 评论 -
HDU 3662 3D Convex Hull(三维凸包表面多边形个数)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3662这个题目我的三维凸包模板竟然有问题,改后AC,模板题留个模板吧!#include#include#include#include#include#include using namespace std;const int MAXN=1001;const int N原创 2013-09-09 21:35:53 · 1143 阅读 · 0 评论 -
HDU 4353 Finding Mine(做法经典 三角形内部点/面积)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4353这个题目做法好啊,我想了好久都没做出来,后来看了解题报告^_^这个题目首先按照x值排序,之后枚举所有三角形最后的步骤就是求出在三角形中的点的个数也就是求出点的个数是经典的这个还是要联系程序来讲点在最长边上面的减去点在其他两条边上面的,注意要取绝对值就是在三角形中的点注意原创 2013-09-08 19:04:10 · 648 阅读 · 0 评论 -
POJ 1151 & HDU 1542 Atlantis (矩形切割)
题目链接:http://poj.org/problem?id=1151这个题目数据量不大,可以直接用矩形切割来做不过这个题目有点坑,给的不是左上角和又下角,给的是左下角和右上角的,害我样例通不过然后就是矩形切割,开始没理解,老是想不通,后来明白后发现这个思想还是挺经典的矩形分割就是用现在要插入的矩形来分割现在集合中已经有的矩形,那么分割的时候不是我们想当然的分割的,他是这样,保原创 2013-08-28 17:06:50 · 610 阅读 · 0 评论 -
HDU 3124 Moonmist(平面最近圆对,二分+扫描线)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3124这个题目开始拿到的时候就一心想用平面最近点对的方法去套,折腾了好一会都没得出结果,无奈在网上搜解题报告发现这篇博文http://blog.sina.com.cn/s/blog_6e7b12310100qnex.html一看见二分半径,似乎就明白了,可惜这个不是重点,重点是怎么在线性原创 2013-08-13 21:35:31 · 1584 阅读 · 1 评论 -
HDU 4455 Stealing a Cake(计算几何 点到圆 到矩形距离)
表示这个题目很坑,竟然普通的枚举角度也能过,在现场如果没敢这么干的童鞋肯定后悔死了,不过直接枚举跑的时间还是没三分枚举快的三分枚举的思想其实和二分差不多,具体为什么对,看看代码是怎么枚举的,稍微想想就能明白了!直接枚举:#include #include #include #include #define eps 1e-8using namespace std原创 2013-08-12 16:50:14 · 731 阅读 · 0 评论 -
HDU 4404 Worms(任意多边形与圆相交部分的面积)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4404算是模板题吧,但是这个模板不好搞,也就是没有积累这个模板通常没有这个题目分两种情况,在上升过程中爆炸,在下降过程中爆炸,求出圆心,然后直接套模板就好了!#include #include #include #include #include using namespace s原创 2013-08-20 11:47:49 · 962 阅读 · 0 评论 -
POJ 3335 Rotating Scoreboard(求解多边形内核)
题目链接:http://poj.org/problem?id=3335这个题目意思就是给你一个多边形,让你判断是否在多边形内部存在一个点(或者一个区域)使得只要在这个区域内部就能观察到这个多边形内部的所有地方多边形的边是不透明的;对于这个题目一个很好理解的算法就是不断切割多边形,维护一个可能是内核区域的一个多边形点集,最后判断点的个数>0就满足条件,否则就不满足条件如果当前原创 2013-08-07 10:54:42 · 805 阅读 · 0 评论 -
POJ 2069 super star(三维点集最小圆覆盖 模拟退火)
模拟退火思想,开始就用普通的随机模拟退火去做,怎么都是wa,后来看网上的解答,每次都是像最远点逼近也就是每次朝最优路径走!#include #include #include #include #include using namespace std;#define maxn 100#define eps 1e-10#define MAX(a,b) (a>b?a:b)原创 2013-10-01 16:21:48 · 877 阅读 · 0 评论 -
POJ 1379 Run Away(模拟退火)
题目链接:http://poj.org/problem?id=1379这道题目应该算是真正意义上的模拟退火了,每一步基本上都是随机的防止一个不准确,来30个,防止一个方向不行,随机来30个方向,取结果最好的一个方向!#include #include #include #include #include #include #include #define maxn原创 2013-10-02 16:23:24 · 1312 阅读 · 1 评论 -
HUST 1632 Sheep’s Toy I(计算几何 正方形旋转覆盖面积)
题目链接:http://acm.hust.edu.cn/problem.php?id=1632很简单的一道几何题目,利用的知识就是初中的,推推角度之间的关系,注意点细节就OK了。#include #include #include #include #include using namespace std;const double pi = acos(-1.0);int ma原创 2013-12-14 13:10:23 · 716 阅读 · 0 评论 -
计算几何模板 (更新中)
1 判断线段是否非规范相交下面模板是根据跨立实验得到的结果struct point{double x;double y;};double multi(point p0, point p1, point p2)//j计算差乘{ return (p1.x-p0.x)*(p2.y-p0.y)-(p2.x-p0.x)*(p1.y-p0.y);}bool is_cross(poin原创 2013-07-17 21:42:04 · 1112 阅读 · 0 评论 -
HDU 3902 Swordsman(判断任意多边形是否为轴对称图形)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3902之前做这类题目的时候是先找多边形的重心,因为对称轴一定经过重心,然后再找另外一个点确定对称轴后判断这次直接给每条线段添加一个中点,然后开始枚举最多n条对称轴,然后判断是否对称也就是对称轴一定垂直平分其两边的点的连线判断垂直直接求两向量点积,判断平分,线段中点在对称轴上!#i原创 2013-11-04 09:10:43 · 1518 阅读 · 2 评论 -
UVA 1438 - Asteroids(三维凸包)
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4184题意:给你两个三维凸包,连个凸包可以任意旋转,求两个凸包质心的最近距离分别求出两个凸包质心到面的最小距离,相加即可!#include#include#include#in原创 2013-10-15 19:36:50 · 759 阅读 · 0 评论 -
UVA Orchard Trees(计算几何)
求给定浮点三角形中的整点个数,包括边界上面的,开始以为又是什么转化的PICK定理,后来发现点的范围很小,所以直接暴力枚举每个点判断在不在三角形内部,判断直接用面积判断可能会导致wa的地方是三角形可能会退化成一条直线,那么在共线的点无论在不在三角形状内部都符合,所以这里要加一个判断#include #include #include #include #include us原创 2013-10-13 21:48:16 · 624 阅读 · 0 评论 -
POJ 2398 Toy Storage(点与直线关系 + 二分)
题目链接:http://poj.org/problem?id=2398这个题目和上一篇博客题目意思几乎一样,不过这个是要求格子内装玩具个数为i的格子数具体解法基本一致!#include #include #include #include #include using namespace std;#define maxn 6000struct point{ d原创 2013-10-12 13:03:18 · 807 阅读 · 1 评论 -
POJ 1696 Space Ant(卷包裹 计算几何)
题目链接:http://poj.org/problem?id=1696一只蚂蚁,只能往左拐,求一条路线能让蚂蚁走过所有的点题目比较简单,每次找最外面一层的,可以直接凸包,每次求凸包我是直接每次找和上一条路线夹角最小的为下一次的目标点,直到走完所有点!#include #include #include #include #include using n原创 2013-10-12 16:32:50 · 635 阅读 · 0 评论 -
POJ 2318 TOYS(计算几何+点与直线位置关系+二分)
题目链接:http://poj.org/problem?id=2318求出每个格子里面玩具数量首先把起始竖线和末尾竖线加上,最后对于每个点二分判断在哪个格子里面,这个二分应该很明显点在直线哪边可以通过X乘积判断#include #include #include #include #include using namespace std;#define maxn 6原创 2013-10-12 12:34:41 · 656 阅读 · 0 评论 -
HDU 4195 Regular Convex Polygon(正多边形)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4195题目意思,给定你一个正多边形上三个顶点,让你求这个正多边形最小有多少顶点!其实题目很简单,就是精度有点不好控制,反正最多点就1000个,那么从小到大判断一下按照角度来判断,注意取整方法和精度控制;多边形的心就是三角形的外心#include #include #include原创 2013-10-06 19:54:27 · 647 阅读 · 0 评论 -
FZU 2035 Axial symmetry(判断多边形是否对称)
题目链接:http://acm.fzu.edu.cn/problem.php?pid=2035这个题目没发现平行x轴线和平行y轴条件的作用,直接按照随便的多边形思想来,没想到精度控高了,一直没能AC,后来把1e-10改成1e-6就AC了!解题思路,首先多边形的对称轴一定经过重心,所以先求出边形的重心然后开始从第枚举对称点,从第一个枚举(为了防止枚举的正好是对称轴,特意枚举了第二个点原创 2013-10-06 15:05:48 · 1387 阅读 · 0 评论 -
HDU 1154 Cutting a Polygon(基础计算几何知识综合应用)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1154首先这个题目用到的知识点比较多,而且,思想也很好,精度也有要求,做这个题目对计算几何的要求还是有一点的表示这个题目不是像杭电上标难度1的那么好做;首先用到很多模板,模板的精度和正确性一定要保证其次就是这个题目到底是怎么做解题思路:求出直线与所有多边形的交点,然后按照交点排序,按原创 2013-08-07 16:17:19 · 830 阅读 · 0 评论 -
POJ 1228 Grandpa's Estate(给定凸包上的一部分顶点 判断表示的凸包是否唯一)
题目链接:http://poj.org/problem?id=1228这个题目不好想,开始老是wa,后来不知道改了哪里就AC了这个题目从样例可以看出给的凸包山的点不是按照顺序来的,是随便的一些点那么我们就在这些点上建立凸包,那么在建立凸包的时候我们不能随便去掉边也就是即使是可以去除的点也不能去掉,也就是传统的graphm方法不能预先选择结束之后要想这个凸包表示唯一那么就不能在外原创 2013-08-06 19:20:15 · 713 阅读 · 0 评论 -
POJ 2002 Squares(计算几何 找正方形 hash枚举)
SquaresTime Limit: 3500MS Memory Limit: 65536KTotal Submissions: 13964 Accepted: 5221DescriptionA square is a 4-sided polygon whose sides have equal length and ad原创 2013-07-21 14:09:02 · 1097 阅读 · 0 评论 -
POJ 3714 Raid(平面最近点对,不同类型点之间)
RaidTime Limit: 5000MS Memory Limit: 65536KTotal Submissions: 7289 Accepted: 2157DescriptionAfter successive failures in the battles against the Union, the Empire原创 2013-07-19 14:18:47 · 891 阅读 · 0 评论 -
HDU 1007 Quoit Design(计算几何 平面最近点对)
Quoit DesignTime Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 22349 Accepted Submission(s): 5735Problem DescriptionHave you ev原创 2013-07-19 11:12:34 · 964 阅读 · 0 评论 -
POJ 2420 A Star not a Tree?(计算几何 多边形的费马点 模拟退火)
A Star not a Tree?Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 2991 Accepted: 1533DescriptionLuke wants to upgrade his home computer network from 10m原创 2013-07-19 18:38:08 · 917 阅读 · 0 评论 -
HDU 2108 Shape of HDU(判断给定的图形是否是凸多边形)
Shape of HDUTime Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4286 Accepted Submission(s): 1900Problem Description话说上回讲到海东集团推选老原创 2013-07-19 16:11:06 · 1319 阅读 · 0 评论 -
HDU 1392 Surround the Trees(凸包)
Surround the TreesTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 6007 Accepted Submission(s): 2261Problem DescriptionThere a原创 2013-07-19 14:33:40 · 830 阅读 · 0 评论 -
POJ 1269 Intersecting Lines(计算几何 直线交点 点在直线上 直线平行)
Intersecting LinesTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 8417 Accepted: 3821DescriptionWe all know that a pair of distinct points on a plane de原创 2013-07-18 16:30:41 · 752 阅读 · 0 评论 -
POJ 2187 Beauty Contest(凸包暴力法)
Beauty ContestTime Limit: 3000MS Memory Limit: 65536KTotal Submissions: 24124 Accepted: 7364DescriptionBessie, Farmer John's prize cow, has just won first place i原创 2013-07-18 21:57:01 · 844 阅读 · 0 评论 -
HDU Wall(凸包)
WallTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 2371 Accepted Submission(s): 652Problem DescriptionOnce upon a time there原创 2013-07-18 21:00:39 · 776 阅读 · 0 评论 -
POJ 3304 Segments(计算几何 判断直线与线段相交)
SegmentsTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 7833 Accepted: 2363DescriptionGiven n segments in the two dimensional space, write a program, whic原创 2013-07-18 14:31:03 · 752 阅读 · 0 评论 -
HDU 3694 Fermat Point in Quadrangle(四边形的费马点)
Fermat Point in QuadrangleTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 1460 Accepted Submission(s): 241Problem Description原创 2013-07-21 10:40:05 · 1151 阅读 · 0 评论 -
POJ 3608 Bridge Across Islands(旋转卡壳 求不相交凸包之间的最短距离)
题目链接:http://poj.org/problem?id=3608表示旋转卡壳这个算法看起来比较好懂(虽然证明起来还是有一点难度的,但是只观的看还是比较好理解的)但是代码实现起来还是不怎么好理解的关键在计算几何这里面要求尽量不涉及到角度的计算,基本上都是点积和差积,因为这样能避免调用系统的三角函数,所以能最大限度的减少精度损失这个题目可以用枚举方法,可以用凸包的单调性来原创 2013-08-01 14:13:35 · 692 阅读 · 0 评论 -
HDU 1147 Pick-up sticks(计算几何 判断直线相交)
Pick-up sticksTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 1682 Accepted Submission(s): 642Problem DescriptionStan has n s原创 2013-07-29 16:45:01 · 786 阅读 · 0 评论 -
HDU 1115 Lifting the Stone(多边形重心)
Lifting the StoneTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 4373 Accepted Submission(s): 1803Problem DescriptionThere ar原创 2013-07-28 17:00:52 · 648 阅读 · 0 评论 -
HDU 1756 Cupid's Arrow(判断点是否在多边形内部)
Cupid's ArrowTime Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 702 Accepted Submission(s): 252Problem Description传说世上有一支丘比特的箭,凡原创 2013-07-27 20:02:08 · 1185 阅读 · 0 评论