您的位置:首页 > 其它

HDU 2036 改革春风吹满地(计算多边形面积)

2016-07-25 16:47 459 查看

题目链接

http://acm.hdu.edu.cn/showproblem.php?pid=2036

题解:

将多边形分成无数个三角形,然后利用叉积计算三角形面积,最后把所有三角形面积加一起就好了。(不要用绝对值,会WA)

AC代码:

#include <iostream>
#include <cstdio>
#include <iomanip>
using namespace std;
int x[200],y[200];
int main()
{
int t;
while(cin >> t)
{
if(t == 0)break;
double ans = 0;
for(int i = 0; i < t; i++)
{
cin >> x[i] >> y[i];
}
int x0 = x[0],y0 = y[0];
int x1,y1,x2,y2,area;
for(int i = 2; i < t; i++)
{
x1 = x[i-1], y1 = y[i-1];
x2 = x[i], y2 = y[i];
area = (x1 - x0) * (y2 - y0) - (y1 - y0) * (x2 - x0);
ans += area;
}
printf("%.1f\n", ans/2.0);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: