hdu2036 改革春风吹满地

 1 #include<math.h>

 2 #include<stdio.h> 

 3 int main()

 4 {

 5     int i,n,a[110][2];

 6     double s;

 7     while(scanf("%d",&n),n)

 8     {

 9         for(s=i=0;i<n;i++)

10         scanf("%d%d",&a[i][0],&a[i][1]);

11         for(i=2;i<n;i++)

12         s+=(a[i][1]-a[i-1][1])*(a[0][0]-a[i][0])  //注意是有向面积,因为这里WA好多次!! 

13         -(a[i][0]-a[i-1][0])*(a[0][1]-a[i][1]);

14         printf("%.1f\n",fabs(s/2));//最后再取正 

15     }

16     return 0;

17 }

18 /*本题主要用到数学中的点到直线距离公式及三角形面积公式;

19 把第一个点设为顶点,依次求顶点与各个连续边组成的三角形的有向面积,

20 最后求和再取正即可!*/ 

 

你可能感兴趣的:(HDU)