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 }