poj 1265 ||poj2954 pick公式 网格
/ :求一个多边形中在网格内点的个数,在边上的点的个数,多边形的面积
//poj2954:求三角形内整点个数 ,两题大同小异,
//利用pick公式:面积=内点+边上的点/2-1;
代码1:poj1265
#include<iostream>#include<cstdio>#include<math.h>int gcd(int a,int b){return b? gcd(b,a%b): a;}struct point {int x,y;};point p[3];int grid_onedge(int n,point *p){int i,ret=0;for(i=0;i<n;i++){ret+=gcd(abs(p[i].x-p[(i+1)%n].x),abs(p[i].y-p[(i+1)%n].y));}return ret;}int grid_inside(int n,point *p){int i,ret=0;for(i=0;i<n;i++){ret+=p[(i+1)%n].y*(p[i].x-p[(i+2)%n].x);}return (abs(ret)-grid_onedge(n,p))/2+1;}int main(){while(scanf("%d%d%d%d%d%d",&p[0].x,&p[0].y,&p[1].x,&p[1].y,&p[2].x,&p[2].y),p[0].x||p[0].y||p[1].x||p[1].y||p[2].x||p[2].y){printf("%d\n",grid_inside(3,p));}return 0;}