POJ 1654 Area
Posted lxy8584099
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了POJ 1654 Area相关的知识,希望对你有一定的参考价值。
计算多边形面积的通式
/* 不规则多边形的计算 通过容斥三角形得到答案 */ #include<cstdio> #include<cstring> #define ll long long using namespace std; const int N=1e6+50; char s[N]; int main() { int T,n;scanf("%d",&T);while(T--) { scanf("%s",s+1); n=strlen(s+1); ll x=0,y=0,xx=0,yy=0,ans=0; for(int i=1;i<=n;i++) { if(s[i]==‘1‘) --x,--y; else if(s[i]==‘2‘) --x; else if(s[i]==‘3‘) --x,++y; else if(s[i]==‘4‘) --y; else if(s[i]==‘5‘) break; else if(s[i]==‘6‘) ++y; else if(s[i]==‘7‘) ++x,--y; else if(s[i]==‘8‘) ++x; else if(s[i]==‘9‘) ++x,++y; ans+=(x*yy-y*xx); xx=x,yy=y; } if(ans<0) ans=-ans; printf("%lld",ans/2); if(ans%2) printf(".5"); printf(" "); } return 0; }
以上是关于POJ 1654 Area的主要内容,如果未能解决你的问题,请参考以下文章