计算几何
文章平均质量分 77
嘎达啊
无名小卒
展开
-
poj 1269 Intersecting Lines 线段相交 平行 重合
利用斜率;斜率相同 在判断是否等同的 如果不是则平行;斜率不同 求交点;#include #include #include using namespace std;const double eps = 1e-9;//注意精度;const double inf = 1e10;double x1, y, x2, y2, x3, y3, x4, y4;bool dx(doub原创 2013-08-06 15:38:40 · 444 阅读 · 0 评论 -
poj 3348 Cows
题意 :给一块空地,上面有很多的树,让你求用树能为最大的 多边形思路:凸包, 求出凸包的顶点 计算多边形的面积:#include #include #include #include using namespace std;const int maxn = 1e4+5;struct node{ double x, y; double原创 2013-08-11 14:12:42 · 435 阅读 · 0 评论 -
poj 2187 Beauty Contest
最大的距离一定在这些农场形成的凸包上, 求出凸包 找出凸包顶点上的最长距离#include #include #include #include using namespace std;const int maxn = 5e4+5;struct node{ double x, y; double rad;}p[maxn], tp[maxn];bool cm原创 2013-08-11 21:51:17 · 417 阅读 · 0 评论 -
极角排序
参考地址:http://blog.csdn.net/zxy_snow/article/details/6700847翻译 2013-08-11 16:26:24 · 490 阅读 · 0 评论 -
poj 2007 极角排序
题意:给一个从源点出发的凸包的顶点坐标, 按逆时针输出极角排序,利用叉积判断,注意叉积不能360度判断, 但这题做多有3个象限有数据,#include #include #include using namespace std;struct node{ double x, y;}p[55];bool cmp(node a, node b原创 2013-08-11 16:23:00 · 453 阅读 · 0 评论 -
poj1113 凸包
#include #include #include #include using namespace std;const double PI = 3.14159265358979;const int maxn = 1e3+4;struct node{ double x, y; double rad;}p[maxn], tp[maxn];bool cmp1(原创 2013-08-09 23:01:49 · 434 阅读 · 0 评论 -
凸包模板
//求凸包问题#include #include #include #include using namespace std;const double PI = 3.14159265358979;struct point{ double x,y; double thera;} a[1005],chs[1005];bool cmp1(point a,point翻译 2013-08-09 23:02:28 · 460 阅读 · 0 评论 -
hdu 3775 pick
题意:http://blog.csdn.net/magicnumber/article/details/6192242#include #include #include #include using namespace std;string str;int dir[8][2] = {{1,0},{1,1},{0,1},{-1,1},{-1,0},{-1,-1},{0,-1原创 2013-08-09 14:16:54 · 545 阅读 · 0 评论 -
poj 1265 pick定理
题意:机器人从原点从发,移动n次, 每次给出沿x y轴移动的位移,求围成多边形边上的点数(on), 内部的点数(in), 和面积。pick定理:面积 = on/2 + in - 1; 假设边的两端点是(x1, y1) (x2, y2) 边上的格数可以用gcd(x1-x2, y1-y2)求得, gcd是最大公约数,注意求的边上的格数只包含一个端点,#inclu原创 2013-08-09 10:30:01 · 484 阅读 · 0 评论 -
poj 2954 pick定理
求三角形内的点数注意 The end-of-file is marked by a test case with x1 = y1 = x2 = y2 = x3 = y3 = 0 and should not be processed.#include #include #include using namespace std;int gcd(int x, in原创 2013-08-09 11:01:48 · 510 阅读 · 0 评论 -
poj 3907 Build Your Home 多边形面积
#include #include #include using namespace std;int main(){ int n; while(scanf("%d", &n) != EOF && n) { double x, y, kx, ky; scanf("%lf %lf", &x, &y); kx = x,原创 2013-08-07 09:48:35 · 573 阅读 · 0 评论 -
poj 2398 poj 2318 二分+叉乘 判断 点与线段的位置
这两题基本一样: poj 2398 可以暴力 16ms , 二分 0ms 题意:一个箱子被多个隔板分割不同的小空间,隔板不会相交, 问每个隔板有多少个玩具输出: 2: 5 有两个玩具的空间有5个, 并且玩具的个数是按升序输出。 思路:利用叉乘判断点在线段的左侧还是右侧,主要是用二分进行计算,以隔板和箱子的两侧为二分基础,(即有 n原创 2013-08-08 16:32:12 · 629 阅读 · 0 评论 -
poj 1654 Area
求面积, 注意用 long long, 而用double不行,还有就是最后求出的面积(即sum/2)乘以2 将面积看成 多个 一半的小正方形, 如果是奇数就面积(sum/2)+0.5 偶数就直接输出#include #include #include #include using namespace std;string str;int x, y, flag;vo原创 2013-08-07 21:13:59 · 412 阅读 · 0 评论 -
hdu 1086 You can Solve a Geometry Problem too 线段相交
#include #include using namespace std;struct node{ double xs, ys; double xe, ye;}p[231];double Ijs(int i, double x, double y){ return (p[i].xs-x) * (p[i].ye-y) - (p[i].ys-y) * (p[原创 2013-08-07 10:48:28 · 489 阅读 · 0 评论 -
hdu 1115 Lifting the Stone 多边形面积
多边形面积参考:http://www.cnblogs.com/jbelial/archive/2011/08/08/2131165.html http://972169909-qq-com.iteye.com/blog/1131976原创 2013-08-07 15:11:49 · 423 阅读 · 0 评论 -
poj 1410 Intersection 线段相交
题意:求一线段与矩形是否相交,包括包含线段,首先判断线段的端点是否在矩形内;如果在 就说明相交不在的话 就判断线段与矩形的四条边是否相交; 0即判断线段相交0;#include #include using namespace std;struct node{ int x, y;}rec[4], seg[2];bool flag;bool Irectan原创 2013-08-06 21:22:15 · 473 阅读 · 0 评论 -
hdu 1392 Surround the Trees
注意 n == 1 n==2 的情况#include #include #include #include using namespace std;const int maxn = 200;struct node{ double x, y; double rad;}p[maxn], tp[maxn];bool cmp1(node a, node b){原创 2013-08-11 22:21:53 · 436 阅读 · 0 评论