pku 3348 计算几何 求凸包面积
2013-08-19 18:46
423 查看
输出的时候要注意
#include<stdio.h> #include<string.h> #include<math.h> #include<algorithm> #include<stdlib.h> using namespace std; const double eps = 1e-8; struct point { double x,y; }p[20010];int top; bool cmpxy(point a,point b) { if(fabs(a.y-b.y)>eps) return a.y<b.y; return a.x<b.x; } double cross(point a,point b,point c){ return (b.x-a.x)*(c.y-a.y)-(c.x-a.x)*(b.y-a.y); } void tu(point *p,int n) { if(n<3) return ; int i,m=0;top=1; sort(p,p+n,cmpxy); for(i=n;i<2*n-1;i++) p[i]=p[2*n-2-i]; for(i=2;i<2*n-1;i++){ while(top>m && cross(p[top],p[i],p[top-1])<eps) top--; p[++top] = p[i]; if(i==n-1) m=top; } } double getarea(point *p,int n) { int i; double area=0; for(i=0;i<n;i++) area+=p[(i+1)%n].y*(p[i].x-p[(i+2)%n].x); return area/2; } int main() { int n,i; double area; scanf("%d",&n); for(i=0;i<n;i++) scanf("%lf%lf",&p[i].x,&p[i].y); tu(p,n); area=getarea(p,top); printf("%.0lf\n",area/50-0.5); return 0; }
相关文章推荐
- pku 3348 计算几何 求凸包面积
- poj 3348:Cows(计算几何,求凸包面积)
- POJ-3348 Cows 计算几何 求凸包 求多边形面积
- poj 3348 Cows 凸包 求多边形面积 计算几何 难度:0 Source:CCC207
- pku 3348 Cows(求凸包面积)
- swustoj-0249(凸包面积)(计算几何)
- Codeforces Gym 100286A. Aerodynamics 计算几何 求二维凸包面积
- 简单几何(凸包+多边形面积) POJ 3348 Cows
- 【计算几何&凸包】SCOI2007最大土地面积
- POJ 3348 Cows (计算凸包面积)
- HDU 5251 矩形面积 (计算几何+旋转卡壳求覆盖凸包的最小矩形面积)
- 计算几何 Graham_scan凸包 pku 1113
- 【BZOJ1069】【SCOI2007】最大土地面积 计算几何 凸包
- 百度之星初赛1006(计算几何:能包含凸包的最小矩形面积)
- [计算几何-凸包]pku1113-Wall
- poj 3348 Cows (叉积计算凸包面积)
- ZOJ 2419-- Triangle-凸包+旋转卡壳求最大面积三角形(计算几何)
- 计算几何初步之凸包(POJ 1113、2007、1873、1228、3348)
- HDU 3264 Open-air shopping malls [相交圆面积+二分查找]【计算几何】
- 【1级裸装没点技能点的计算几何】任意多边形面积-HDU2036