ACM 几何
文章平均质量分 80
穿袜子的流氓兔
这个作者很懒,什么都没留下…
展开
-
判断稳定凸包,求凸包代码(poj1228)
#include #include #include #include using namespace std;const double eps = 1e-8;struct Point { double x, y;} pnt[1005];int stk[1005], top;int dblcmp(double k) { if (fabs(k) < eps)原创 2014-03-18 19:52:19 · 983 阅读 · 0 评论 -
线段树 体积并——hdu3255
#include #include #include #include #define LL __int64 using std::sort; const int nsize=33333; struct Matrix { int x1,x2,y1,y2,s原创 2014-04-07 16:04:48 · 593 阅读 · 0 评论 -
线段树 矩形并
http://www.cnblogs.com/ka200812/archive/2011/11/13/2247064.html给定一个矩形的左下角坐标和右上角坐标分别为:(x1,y1)、(x2,y2),对这样的一个矩形,我们构造两条线段,一条定位在x1,它在y坐标的区间是[y1,y2],并且给定一个cover域值为1;另一条线段定位在x2,区间一样是[y1,y2],给定它一个cover值为原创 2014-04-07 16:02:24 · 633 阅读 · 0 评论 -
求两圆交面积
#include #include #include #includeusing namespace std;const double eps=1e-6;struct point{ double x,y; point(double x,double y):x(x),y(y) {}};double dis(point a,point b){ retur原创 2014-03-25 16:17:11 · 821 阅读 · 0 评论 -
求幷圆面积
#include#include#include#include#includeusing namespace std;const int maxn = 1005;typedef double db;const db EPS = 1e-6;typedef pair PDD;int x[ maxn ], y[ maxn ], r[ maxn ];int nx[ maxn ],原创 2014-03-25 16:06:18 · 775 阅读 · 0 评论 -
求正方形的 点覆盖,正方形不能斜放(线段扫描)
#include #include #include #include #define Max 0x3f3f3f3fusing namespace std;struct node{ int x,y;} p[1005];int main(){ int i,j,n,r,ans; int xx[1005],yy[1005]; while(scanf("原创 2014-03-30 18:22:59 · 942 阅读 · 1 评论 -
其中包括求给定点凸包顶点,凸包周长,凸包面积,自然也包括一些几何公式如求给定点围成图形面积和叉积等
其中包括求给定点凸包顶点,凸包周长,凸包面积,自然也包括一些几何公式如求给定点围成图形面积和叉积等。。。#include #include #include #include #define N 200#define inf 1e-6typedef struct{ double x; double y;}point;point points[N]; //点集p原创 2014-03-18 21:40:55 · 1041 阅读 · 0 评论 -
三维几何模板
//三维几何函数库#include #define eps 1e-8#define zero(x) (((x)>0?(x):-(x))<eps)struct point3{ double x,y,z;};struct line3{ point3 a,b;};struct plane3{ point3 a,b,c;};//计算cross produ原创 2014-03-18 21:26:04 · 796 阅读 · 0 评论 -
计算多边形核的面积、半平面交(poj1279)
半平面交的模板。注意:此题点是按顺时针顺序排的#include #include #include #include using namespace std;const double eps = 1e-8;const int maxn = 20005;int dq[maxn], top, bot, pn, order[maxn], ln;struct Point{原创 2014-03-18 20:54:42 · 810 阅读 · 0 评论 -
zoj2967 Colorful Rainbows(凸包 排序 栈)
问题分析: 这道题是去年(2008)浙江省赛的题目,因此估计比较多人留意,我写本文的时候一共有90多个AC了。问题很简单,就是给出 n条斜率存在的直线,称 y坐标比较大的为比较“高”的,而一些直线比其他直线高的部分会把那些较低的部分遮盖,问从上往下看能看到多少条不同的直线(只需要看到一部分就好了)。 数据范围 n 达到了 5000,时限 1s。因此(N^2)的想法基本上可以直接淘汰。原创 2014-02-25 18:16:58 · 896 阅读 · 0 评论 -
格点多边形上点的数目(边上、内部、以及多边形面积)----poj1265
http://poj.org/problem?id=1265Pick定理:一个计算点阵中顶点在格点上的多边形面积公式:S=a+b÷2-1,其中a表示多边形内部的点数,b表示多边形边界上的点数,s表示多边形的面积。如图:图中是样例二。题目要求输出边界格点个数、内部格点个数、其面积。已知一条直线,如图中(5,0)到(6,3)这条直线,经过的整点数是2,可通过如下公式计算原创 2014-03-18 20:07:41 · 5576 阅读 · 0 评论 -
判断点是否在多边型内(zoj1081)
改进弧长法很优美的算法,没有特殊处理,没有角度,时间复杂度o(n),常数项很低,空间复杂度o(1)。#includestruct p{ int x,y;}pt[200];int cmp(int x,int y){ if(x>y) return 1; if(x<y) return -1; return 0;}int main(){ int i原创 2014-03-18 21:39:30 · 598 阅读 · 0 评论 -
判断所给点是否是凸包,以及圆是否在凸包内(poj1584)
题目要求判断一个多边形是否是凸多边形以及圆是否在凸多边形内部判断一个多边形是否为凸多边形的思路是:枚举每一条边,观察剩余点是否在这条边的一侧,若对于每条边都是这样的情况,则该多边形是凸多边形,否则不是判断给定圆是否在凸多边形内部,只需要两点:一个是圆心在凸多边形内部,还有就是圆心到凸多边形每条边的距离都是大于圆的半径的。代码如下:#include #include #include原创 2014-03-18 21:12:36 · 1532 阅读 · 0 评论 -
半平面交
首先解决问题:什么是半平面?顾名思义,半平面就是指平面的一半,我们知道,一条直线可以将平面分为两个部分,那么这两个部分就叫做两个半平面。然后,半平面怎么表示呢?二维坐标系下,直线可以表示为ax + by + c = 0,那么两个半平面则可以表示为ax + by + c >= 0 和ax + by + c 还有,半平面的交是神马玩意? 其实就是一个方程组,让你画出满足若干个式子的坐标系上转载 2014-03-18 21:06:51 · 739 阅读 · 0 评论