POJ 2954 Triangle
Posted lxy8584099
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了POJ 2954 Triangle相关的知识,希望对你有一定的参考价值。
Pick定理万岁!!!
/* 2S=2a+b-2,其中a表示多边形内部的点数,b表示多边形边界上的点数,S表示多边形的面积。 这样 求出三角形面积 求出边上的点 内部的点就呼之欲出了! */ #include<cstdio> using namespace std; long long abs(long long x){return x>0?x:-x;} long long gcd(long long a,long long b) { return b==0?a:gcd(b,a%b); } int main() { int x1,y1,x2,y2,x3,y3; while(scanf("%d%d%d%d%d%d",&x1,&y1,&x2,&y2,&x3,&y3)) { if(!x1&&!x2&&!x3&&!y1&&!y2&&!y3) break; long long s2=(x1-x3)*(y2-y3)-(y1-y3)*(x2-x3); if(s2<0) s2=-s2; s2+=2; long long b=3; b+=gcd(abs(x1-x2),abs(y1-y2))-1; b+=gcd(abs(x1-x3),abs(y1-y3))-1; b+=gcd(abs(x3-x2),abs(y3-y2))-1; printf("%lld ",(s2-b)>>1); } return 0; }
以上是关于POJ 2954 Triangle的主要内容,如果未能解决你的问题,请参考以下文章
POJ 2954 Triangle [pick定理,叉积,计算几何]