
菜鸟初学几何
文章平均质量分 53
___Evan
这个作者很懒,什么都没留下…
展开
-
三角形有向面积 + 判断点是否在三角形内部
公式: 以三角形两边的平行四边形面积等于两边向量叉乘 三角形三个顶点如果顺时针那么面积为负,逆时针为正 判断点o是否在三角形abc内部当且仅当 Sabc == Soab + Sobc + Soac #include #include #include #include #include using namespace std; const int maxn = 1005; c原创 2013-12-17 12:26:33 · 1163 阅读 · 0 评论 -
分土地
一块土地,在边界上选n个点,并两两头尾相连,问最多能把土地分成几个部分? 小白书:P86 最优方案不会让任意三条边交与一点。 欧拉公式: V - E + F = 2; V是顶点数(所以线段端点加交点数) E是边数(n段线段加上被切成的段数) F是面数(土地块数加上土地边界外的无穷大的面) 答案即为 E-V+1 V = n + n/4 * 求和(原创 2013-12-17 12:53:09 · 717 阅读 · 0 评论 -
HDU-2108 Shape of HDU
判断多边形是凸还是凹 即判断凸包点数是否等于原点数 #include #include #include using namespace std; const int maxn = 1005; #define PI 3.14159265 int n,r; struct Point { double x,y; Point( double x = 0,double y = 0 ): x(原创 2013-12-21 17:00:53 · 457 阅读 · 0 评论 -
HDU-1348 Wall 凸包
#include #include #include using namespace std; const int maxn = 1005; #define PI 3.14159265 int n,r; struct Point { double x,y; Point( double x = 0,double y = 0 ): x(x),y(y) { } }point[maxn],ch[max原创 2013-12-21 16:40:07 · 470 阅读 · 0 评论 -
HDU-2007 Scrambled Polygon 极角排序
题目地址 题意:就是将所给点按凸包顺序输出,从原点开始。 分析:其实就是将除原点外的点进行极角排序。 #include #include #include using namespace std; const int maxn = 55; int n,r; struct Point { double x,y; Point( double x = 0,double y原创 2013-12-21 17:46:22 · 371 阅读 · 0 评论 -
判断点是否在多边形内
角度和判定法 bool isInPolygon_angle( Point P,Point *p,int n ) { double angle = 0; for( int i = 0; i < n-1; i ++ ) { angle += Angle( p[i] - P,p[i+1] - P ); } angle += Angle( p[n-1] - P,p[0] - P )原创 2013-12-27 21:34:06 · 431 阅读 · 0 评论 -
二维几何基础
#include #include //常用定义 const double eps = 1e-10; struct Point { double x,y; Point( double x = 0,double y = 0 ): x(x),y(y) {} }; typedef Point Vector; Vector operator + ( Vector A,Vector B ) { retu原创 2013-12-27 20:31:48 · 473 阅读 · 0 评论 -
hdu-4946 Area of Mushroom 凸包
题目链接 #include #include #include #include #include #include #include using namespace std; typedef __int64 LL; const int maxn = 1005; const int Mod = 1000000007; int n,N; int ans[maxn]; int原创 2014-08-14 17:40:57 · 524 阅读 · 0 评论