计算几何
文章平均质量分 74
CCSU_HelloWorld
来得很匆忙
展开
-
poj 2318 TOYS
给定你个长方形,划分成n+1个区域,里面有m个玩具,求每个区域内有多少个玩具。 方法:叉积和二分法。 #include #include #include #include #define eps 1e-8 using namespace std; struct Point { int x, y; Point(){} Point(int x, int原创 2013-07-15 13:06:55 · 307 阅读 · 0 评论 -
poj 2187 Beauty Contest
题意:在一个平面内给出了许多点,求出所有点中两点最长距离的平方。 方法:graham法求凸包,枚举 #include #include #include #include using namespace std; #define N 50005 struct Point { int x, y; }p[N], res[N]; int Cross(Point a, Point原创 2013-07-23 11:40:10 · 277 阅读 · 0 评论 -
poj 1279 Art Gallery
模板题 代码: #include #include #include using namespace std; #define N 2000 #define eps 1e-8 struct Point { double x, y; Point(){} Point(double x, double y):x(x),y(y){} }s[N], p[N],原创 2013-07-21 20:57:40 · 314 阅读 · 0 评论 -
poj 3348 Cows
凸包模板题,求出凸包面积,再除以50就可以了。 代码: #include #include #include #include using namespace std; #define eps 1e-10 #define N 1005 struct Point { double x, y; }p[N], res[N]; int dcmp(double x) {原创 2013-07-22 13:06:41 · 301 阅读 · 0 评论 -
zoj 1450 Minimal Circle
题意:给定你一些点,求能够覆盖掉所有点的最小的圆。 方法:最小圆覆盖,随机增量法 代码: #include #include #include using namespace std; #define eps 1e-8 struct Point { double x, y; }; struct Circle { Point c; double r;原创 2013-07-20 16:45:48 · 423 阅读 · 0 评论 -
半平面交
首先解决问题:什么是半平面? 顾名思义,半平面就是指平面的一半,我们知道,一条直线可以将平面分为两个部分,那么这两个部分就叫做两个半平面。 然后,半平面怎么表示呢? 二维坐标系下,直线可以表示为ax + by + c = 0,那么两个半平面则可以表示为ax + by + c >= 0 和ax + by + c 还有,半平面的交是神马玩意? 其实就是一个方程组,让你画出满足若干个式子的转载 2013-07-21 17:33:09 · 420 阅读 · 0 评论 -
poj 3335 Rotating Scoreboard
题意:求多边形的核是否存在。 半平面交模板题。 代码: #include #include #include using namespace std; #define MAXN 110 #define eps 1e-10 struct Point { double x, y; Point(){} Point(double x, double y):x原创 2013-07-21 17:29:58 · 386 阅读 · 0 评论 -
poj 2653 Pick-up sticks
题意:从头到尾输入许多的棍子两端的坐标, 棍子的标号从1到N,按顺序输出没有被覆盖的棍子的标号。 方法:线段判交,先输入的棍子与后面的棍子相交,则先输入的棍子被覆盖掉。 代码: #include #include #include #include #define eps 1e-8 using namespace std; struct Point// { double原创 2013-07-20 10:51:31 · 395 阅读 · 0 评论 -
poj 2420 A Star not a Tree?
这是一个求多边形费马点的问题,通过求出的费马点,进而求出费马点到各个顶点之和。 方法:模拟退火 #include #include #include #define eps 1e-10 using namespace std; struct Point { double x, y; }; double dist(Point *p, int n, Point t) {原创 2013-07-20 09:48:26 · 388 阅读 · 0 评论 -
Points Within
判断点是否在任意多边形内。 #include #include #include #define eps 1e-10 #define N 110 using namespace std; struct Point { double x, y; Point(){} Point(double x, double y):x(x),y(y){} }; Point原创 2013-07-19 17:11:44 · 375 阅读 · 0 评论 -
poj 1269 Intersecting Lines
这是很基础的计算几何的题目。 两直线判交,有交点就输出交点,没有交点共线或重合则输出相应的结果。 题目链接:http://poj.org/problem?id=1269 #include #include #include #include #define eps 1e-8 using namespace std; struct Point// { double x,原创 2013-07-15 15:45:56 · 316 阅读 · 0 评论 -
多边形重心
质量集中在顶点上。n个顶点坐标为(xi,yi),质量为mi,则重心 X = ∑( xi×mi ) / ∑mi Y = ∑( yi×mi ) / ∑mi 特殊地,若每个点的质量相同,则 X = ∑xi / n Y = ∑yi / n hdu1115,题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1115 #in原创 2013-08-05 16:10:04 · 385 阅读 · 0 评论