您的位置:首页 > 其它

HDU 2036 - 改革春风吹满地

2013-11-29 14:53 239 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2036

题目分析:

可以利用多边形求面积公式:

S = 0.5 * ( (x0*y1-x1*y0) + (x1*y2-x2*y1) + ... + (xn*y0-x0*yn) )

其中点(x0, y0), (x1, y1), ... , (xn, yn)为多边形上按逆时针顺序的顶点。

#include <stdio.h>
double x[100],y[100];
int main()
{
int i,n;
double a,b,sum;
while(scanf("%d",&n)!=EOF,n)
{
sum=0;
for(i=0;i<n;i++)
{scanf("%lf%lf",&x[i],&y[i]);}
a=x[0],b=y[0];
for(i=1;i<n-1;i++)
{sum+=((x[i]-a)*(y[i+1]-b)-(x[i+1]-a)*(y[i]-b))/2;}
printf("%.1lf\n",sum);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  HDU2036 ACM