Tanky WooRSS

HDOJ 2036 改革春风吹满地

18 Jul 2010
这篇博客是从旧博客 WordPress 迁移过来,内容可能存在转换异常。

用到了数学的知识:

求多边形面积:(可以是凸多边形或者凹多边形)

S = 1/2 * abs(∑(xiyi+1 – xi+1yi))

#include 
#include 
using namespace std;
typedef struct point{
 int x, y;
}point;

point polygon[101];
int main()
{
 int num;
 while(scanf("%d", #) && num)
 {
  double area = 0.0;
  for(int i = 0; i < num; ++i)
   scanf("%d %d", &polygon;[i].x, &polygon;[i].y);
  for(int i = 0; i < num; ++i)
   area += (polygon[i].x * polygon[(i+1)%num].y) - (polygon[(i+1)%num].x * polygon[i].y);
  printf("%.1lf\n", area/2.0);
 }
 return 0;
}