poj 1654 多边形面积计算

http://poj.org/problem?id=1654

简单的多边形面积计算,用叉乘公式即可。

c++提交

 1 #include<stdio.h>

 2 #include<stdlib.h>

 3 int dir[10][2]={{0,0},{-1,-1},{0,-1},{1,-1},{-1,0},{0,0},{1,0},{-1,1},{0,1},{1,1}};

 4 int main()

 5 {

 6     int cas,i;

 7     int x1,y1,x2,y2;

 8     long long area;

 9     char s[1000005];

10     scanf("%d",&cas);

11     while(cas--)

12     {

13         scanf("%s",s);

14         x1=0;y1=0;area=0;i=0;

15         while(s[i]!='5')

16         {

17             x2=x1+dir[s[i]-'0'][0];

18             y2=y1+dir[s[i]-'0'][1];

19             area+=x1*y2-x2*y1;

20             x1=x2;

21             y1=y2;

22             i++;

23         }

24         if(area<0)

25             area=-area;

26         if(area%2)

27             printf("%lld.5\n",area/2);

28         else

29             printf("%lld\n",area/2);

30     }

31     return 0;

32 }

你可能感兴趣的:(poj)