ACM_计算几何
PoemK
这个作者很懒,什么都没留下…
展开
-
hdu 4197 Popping Balloons 环状区间选点
题意:给出n个球的圆心坐标和半径大小,从原点扔飞镖,求最小飞镖数使刺破所有球。(飞镖是射线,球可以穿透,没有球包含原点)解法:n个球对应n个角度区间,然后这是一个(-PI,PI]内的环状区间选点问题,要求选最少的点,使之覆盖所有区间。利用2tan()求出圆心的辐角,然后区间的左右端点是圆心的辐角-+两切线夹角的半角(asin()可求,(0,PI/2])环状问题,原创 2016-07-12 08:01:04 · 505 阅读 · 0 评论 -
sgu 332 Largest Circle 求凸n边形内最大圆半径
题目链接题意:求凸n边形内最大圆半径解法:二分圆半径即可,之后对于n边形的每条边,向内推动当前mid距离,进行半平面交,如果有解,证明存在符合条件的半径。代码:#include<cstdio>#include<string>#include<cstring>#include<iostream>#include<cmath>#include<algorithm>#include<vecto原创 2016-08-24 15:28:41 · 755 阅读 · 0 评论 -
poj 1113 Wall 凸包
题目链接题意:给出一个凸n边形,现在你需要建一个围墙,使得围墙与多边形的距离至少为L,问围墙最短长度。解法:答案=凸包周长+2∗π∗L答案=凸包周长+2*\pi*L证明:对于凸n边形,外面有n个外角,减去内角和180(n−2),=360n−180n+360=180n+360,因为每个外角都要作两条垂线,即180°,所以再减去180n,=360,所以外面的转角正好拼成360°,并且距离均为L,这部分周原创 2016-08-25 10:37:25 · 355 阅读 · 0 评论 -
hdu 4946 Area of Mushroom 凸包
题目链接这个题终于让我知道了什么是凸包…注意的点 1.只用考虑速度最大的人,因为只要vi<vjv_i<v_j,在无穷远处,必然是tj<ti t_j<t_i 2.如果最大速度为0,那么所有答案均为0,每个人不能移动,所以不可能负责无限的区域。 3.如果两点速度相同并且位置相同,则均为0。 4.对速度最大的点进行凸包,围在里面的点不能到达无穷的区域,只有在边界上的点才行。 3.在进行原创 2016-08-26 09:20:56 · 393 阅读 · 0 评论 -
poj 2007 Scrambled Polygon
链接题意:给出凸包上的一些点,现在需要你按逆时针排序输出,并且输出的第一个点是(0,0)解法:极角排序#include<cstdio>#include<string>#include<cstring>#include<iostream>#include<cmath>#include<algorithm>#include<vector>using namespace std;#defin原创 2016-08-31 09:07:09 · 347 阅读 · 0 评论 -
poj 1873 The Fortified Forest 搜索+凸包
链接题意:给出一些树(2<=n<=15),每个树有一个二维坐标,现在要砍下一些树,去做成围栏把其它树围起来。每棵树都有价值,还有砍了后能做成多少米的围栏。 为了节约材料,尽量使围栏的周长小。 现在要求使砍树的价值和最小,在此情况下要求砍树的数目最小。 要求输出砍掉哪些树,并且做完围栏后多余的材料可以围多少米。解法:枚举所有状态(选中哪些树,不选哪些树),然后进行凸包。代码:#includ原创 2016-08-31 13:00:34 · 321 阅读 · 0 评论 -
hdu 5120 Intersection 两环面积交
IntersectionTime Limit: 4000/4000 MS (Java/Others) Memory Limit: 512000/512000 K (Java/Others)Total Submission(s): 2499 Accepted Submission(s): 929Problem DescriptionMatt is a bi原创 2016-09-21 14:05:42 · 299 阅读 · 0 评论 -
bzoj 1007 水平可见直线 半平面交
1007: [HNOI2008]水平可见直线Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 6200 Solved: 2351[Submit][Status][Discuss]Description 在xoy直角坐标平面上有n条直线L1,L2,...Ln,若在y值为正无穷大处往下看,能见到Li的某个子线段,则称Li为可见原创 2016-11-10 21:48:38 · 420 阅读 · 0 评论 -
poj 1279 Art Gallery 半平面交
Art GalleryTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 7218 Accepted: 2908DescriptionThe art galleries of the new and very futuristic building of原创 2016-11-10 22:23:44 · 472 阅读 · 0 评论 -
poj 1474 Video Surveillance 半平面交
Video SurveillanceTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 3963 Accepted: 1766DescriptionA friend of yours has taken the job of security office原创 2016-11-10 22:37:28 · 430 阅读 · 0 评论 -
hdu 1392 Surround the Trees 凸包
题意:给出一些树,要求用绳子把所有的树围起来,问绳子的长度最少是多少。原创 2016-11-24 19:35:19 · 326 阅读 · 0 评论 -
hdu 1007 Quoit Design 平面上的最近点对 分治法+鸽笼原理
题意:给出数万个点,如何让计算机在5秒内找出最近点对的距离/2。原创 2016-11-27 11:34:15 · 475 阅读 · 0 评论 -
hdu 2202 最大三角形 凸包的性质
老师在计算几何这门课上给Eddy布置了一道题目,题目是这样的:给定二维的平面上n个不同的点,要求在这些点里寻找三个点,使他们构成的三角形拥有的面积最大。你可以认为:3 <= n <= 50000 而且 -10000 <= xi, yi <= 10000.原创 2016-11-28 22:18:03 · 521 阅读 · 0 评论 -
hdu 2108 判断多边形的凹凸
判断多边形的凹凸原创 2016-11-29 21:55:49 · 450 阅读 · 0 评论 -
poj 1755 Triathlon 半平面交
题目链接题意:给出n个人,还有他们在铁人三项中游泳、自行车和赛跑的速度,问通过合理设计三个比赛的长度,哪些人可能成为冠军(不能是并列的)。解法:设行程总长度为1,其中游泳的长度为x,自行车的长度为y,则赛跑的长度为1-x-y,若i可能成为冠军,则令f(i)=xV[i]+yU[i]+1−x−yW[i],有f(i)<f(j)(j≠i)令f(i)=\frac x {V[i]}+\frac y {U[i]}原创 2016-08-24 14:00:21 · 374 阅读 · 0 评论 -
poj 2540 Hotter Colder 半平面交
题目链接题意:在一个(0,0) ,(10,0),(10,10),(0,10)四个点围成的正方形房屋内藏着一个人B,现在A蒙着眼从(0,0)出发,之后经过一些点停下,B会告诉他这个位置和上一次比是距自己近了,还是远了。每一步输出B可能所在区域的面积。解法:首先一点,如果是”Same”,那么之后都输出0.00 。每一步半平面交之后求凸多边形面积。 对于两个连续的停留点A、B,首先确定终点midP,然后v原创 2016-08-23 21:27:38 · 720 阅读 · 0 评论 -
hdu 2297 Run 半平面交
题意: 在一条笔直的路上进行赛跑,给出n个运动员的初始坐标和速度大小,假设所有人都会不停地跑,问有都少人可能在某时刻成为第一。解: 以初始位置为纵坐标,速度为斜率,构造射线。进行半平面交,每条射线的左方为所求部分,现在要找出所求部分的边缘线。原创 2016-08-17 17:05:44 · 632 阅读 · 1 评论 -
uva 11178 Morley's Theorem 三角形内角三等分线交点
给出一个三角形ABC,共有6条内角三等分线:AF 、AE、 BF、 BD、 CE、 CD,求点D、E、F的坐标。#include#include#include#include#include#include#includeusing namespace std;#define all(x) (x).begin(), (x).end()#define for0(a,原创 2016-07-20 14:56:45 · 1430 阅读 · 0 评论 -
uvaLive 3263 That Nice Euler Circuit 欧拉定理
题意:给出一个一笔画图形所经过的端点,最后一个点正好是出发点(共有n个点,n问平面被分成了多少部分欧拉定理:平面上顶点数 v,边数 e,面数 fv+f-e=2所以f=e+2-v#include#include#include#include#include#include#includeusing namespace std;#de原创 2016-07-20 16:45:56 · 473 阅读 · 0 评论 -
hdu 5733 tetrahedron 求四面体内切球球心坐标及半径大小
tetrahedronTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 720 Accepted Submission(s): 291Problem DescriptionGiven four point原创 2016-07-24 15:05:16 · 1995 阅读 · 2 评论 -
UVA 10674 Tangents 求两圆切线
给出两圆求切线。一顿套模板,结果完全按照大白来好像过不了...#include#include#include#include#include#include#include#includeusing namespace std;#define all(x) (x).begin(), (x).end()#define for0(a, n) for原创 2016-07-29 16:40:33 · 635 阅读 · 0 评论 -
uva 10652 Board Wrapping 凸包
题意:给出一些矩形,(长、宽、中心位置、顺时针旋转的角度),用一个最小的凸多边形把它围起来,求矩形面积和/凸多边形面积。解法:求凸包#include#include#include#include#include#include#includeusing namespace std;#define all(x) (x).begin(), (x)原创 2016-08-03 18:16:01 · 434 阅读 · 0 评论 -
poj 2398 Toy Storage 二分+叉积
Toy StorageTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 5329 Accepted: 3161DescriptionMom and dad have a problem: their child, Reza, never puts his t原创 2016-08-03 21:32:25 · 343 阅读 · 0 评论 -
poj 2318 TOYS 二分+叉积
给出一个矩形抽屉,然后有n个板子放在其中,连接上下底。给出m个玩具的坐标(视作点),问n+1个区间内,每个区间中有多少玩具。原创 2016-08-03 20:59:20 · 1848 阅读 · 0 评论 -
poj 1269 Intersecting Lines 判断直线的位置关系
Intersecting LinesTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 14447 Accepted: 6373DescriptionWe all know that a pair of distinct points on a plane d原创 2016-08-07 15:30:33 · 394 阅读 · 0 评论 -
poj 3304 Segments 线段与直线的关系
给出n条线段(n<=100),问是否存在一条直线,使得所有线段在这条直线上的投影有至少一个公共交点。原创 2016-08-07 19:39:28 · 1177 阅读 · 7 评论 -
poj 2653 Pick-up sticks 线段相交
有n(n<=100000)根针,现在依次丢到地上,给出阵的两端点坐标,问哪些针不被任何针压住?题目保证答案<=1000原创 2016-08-10 08:14:27 · 389 阅读 · 0 评论 -
poj 1066 Treasure Hunt
金字塔底是一个100*100的正方形(四面四个外墙),其中还有很多内墙(n个),一个内墙从某个外墙出发,到另一个外墙。这样就形成了很多房间,每个房间都没有门。现在知道宝藏的位置,你在金字塔外,需要你钻洞寻宝,要求每次钻洞都必须在线段的中点钻,问最少的打洞次数。原创 2016-08-10 09:59:06 · 302 阅读 · 0 评论 -
poj 1410 Intersection 线段与矩形的关系
IntersectionTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 13986 Accepted: 3656DescriptionYou are to write a program that has to decide whether a given原创 2016-08-10 11:07:52 · 330 阅读 · 0 评论 -
poj 1696 Space Ant 绕圈圈
Space AntTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 4142 Accepted: 2616DescriptionThe most exciting space discovery occurred at the end of the 20原创 2016-08-10 18:28:32 · 390 阅读 · 0 评论 -
求最近点对算法分析
问题描述: 在应用中,常用诸如点、圆等简单的几何对象代表现实世界中的实体。在涉及这些几何对象的问题中,常需要了解其邻域中其他几何对象的信息。例如,在空中交通控制问题中,若将飞机作为空间中移动的一个点来看待,则具有最大碰撞危险的2架飞机,就是这个空间中最接近的一对点。这类问题是计算几何学中研究的基本问题之一。下面我们着重考虑平面上的最接近点对问题。 最接近点对问题的提法是转载 2016-11-27 11:35:18 · 487 阅读 · 0 评论