
计算几何
ehi11
这个作者很懒,什么都没留下…
展开
-
Jack Straws 线段相交加并查集
/*开始的时候并查集写错了。就是有传递闭包的关系。不错的一个题。*/#include #define eps 1e-8double max(double a,double b){ if(b-a<-eps) return a; else return b;}double min(double a,double b){ if(b-a<-eps) return b原创 2012-08-12 10:03:58 · 603 阅读 · 0 评论 -
Area Pick定理加叉积三角剖分
/*注意由于叉积的有向面积,进行剖分累加的时候一定要在最后取绝对值。不能在中间过程取。否则和会变大。*/#include #include #include #define sum(a,b,c) ((b.x-a.x)*(c.y-a.y)-(b.y-a.y)*(c.x-a.x))using namespace std;struct po{ int x,y;} point[原创 2012-08-12 10:09:38 · 682 阅读 · 0 评论 -
This Takes the Cake 恶心的面积剖分 不过是水题
#include #include using namespace std;struct point{ double x, y;};double a1, a2, d, s;double area(int n, point* p){ double s1=0, s2=0; for(int i=0; i<n; i++) s1 += p[(i+1)%n].y*p[i原创 2012-08-12 10:11:31 · 1067 阅读 · 1 评论 -
Rotational Painting hdu 好的计算几何题!!
/*一道很好的计算几何题啊。题目是求一个多边形能稳定摆放有多少种方式。这道题知道是考查重心。但是一开始没有思路,特别是对凹多边形。原来可以先出重心。然后再求凸包。将所有的四边形补成凸的。这样每一条边就对应着一种放法。然后只要判断重心和这条边的两个角是否为锐角即可。*/#include #include #include #include #define maxn 50001usi原创 2012-08-13 22:00:41 · 628 阅读 · 0 评论 -
CodeForces 203D Hit Ball 水!计算几何
#include #define eps 1e-8int main(){ double a,b,m,vx,vy,vz; while(scanf("%lf%lf%lf",&a,&b,&m)==3) { scanf("%lf%lf%lf",&vx,&vy,&vz); vy=-vy; double t=m/vy;原创 2012-08-13 20:52:35 · 875 阅读 · 0 评论 -
Triangle 两次旋转卡壳
#include #include #include #include #include using namespace std;const int X = 50001;struct node{ int x,y; friend bool operator < (node a,node b) { return a.y<b.y||(a.y==b.y原创 2012-08-13 22:08:29 · 480 阅读 · 0 评论 -
A Star not a Tree? 模拟退火
/*模拟退火的思路非常巧妙。从大处定位,再慢慢细微。相当于先粗条再微调。*/#include #include struct point{ double x,y;}p[101];int n;double dis(point p1,point p2){ return sqrt((p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y)原创 2012-08-13 22:12:33 · 702 阅读 · 0 评论 -
Myacm Triangles hoj,poj,uva 计算几何
123原创 2012-09-05 07:22:20 · 697 阅读 · 0 评论