现在的位置: 首页 > 综合 > 正文

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

2018年05月25日 ⁄ 综合 ⁄ 共 495字 ⁄ 字号 评论关闭

    题目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;
}

抱歉!评论已关闭.