您的位置:首页 > 其它

HDOJ 2306:改革春风吹满地 叉积求面积

2012-02-05 18:18 246 查看
题目URL:http://acm.hdu.edu.cn/showproblem.php?pid=2036

题目也没说是凸多边形还是凹多边形,糊里糊涂就A了。

思路是把一个N边形切割成N-2个三角形,然后用向量叉积求三角形的面积。

我的AC代码:



#include<iostream>
#include<stdio.h> 
using namespace std;

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