您的位置:首页 > 其它

hdu1115 Lifting the Stone (多边形重心)

2013-08-10 15:06 465 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1115

模版题

#include <stdio.h>
#include <math.h>

typedef struct node
{
double x,y;
}point;

double Area(point p0,point p1,point p2)
{
double area=0;
area=p0.x*p1.y+p1.x*p2.y+p2.x*p0.y-p1.x*p0.y-p2.x*p1.y-p0.x*p2.y;
return area/2.0;
}

int main()
{
point p0,p1,p2;
double xsum,ysum,areasum,area;
int test,n;
scanf("%d",&test);
while(test--)
{
xsum=ysum=areasum=0.0;
scanf("%d",&n);
scanf("%lf %lf %lf %lf",&p0.x,&p0.y,&p1.x,&p1.y);
n-=2;
while(n--)
{
scanf("%lf %lf",&p2.x,&p2.y);
area=Area(p0,p1,p2);
areasum+=area;
xsum+=(p0.x+p1.x+p2.x)*area;
ysum+=(p0.y+p1.y+p2.y)*area;
p1.x=p2.x;
p1.y=p2.y;
}
areasum*=3.0;
printf("%.2lf %.2lf\n",xsum/areasum,ysum/areasum);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: