码迷,mamicode.com
首页 > 其他好文 > 详细

poj2954Triangle

时间:2018-08-21 19:46:38      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:target   ace   names   for   hide   splay   alt   namespace   stream   

传送门

Pick定理

定点坐标为整点的三角形,面积为S,边上的整点个数为L,三角形内部整点个数为N

S=N+L/2-1

技术分享图片
 1 //Achen
 2 #include<algorithm>
 3 #include<iostream>
 4 #include<cstring>
 5 #include<cstdlib>
 6 #include<vector>
 7 #include<cstdio>
 8 #include<queue>
 9 #include<cmath>
10 #include<set>
11 #include<map>
12 #define Formylove return 0
13 #define For(i,a,b) for(int i=(a);i<=(b);i++)
14 #define Rep(i,a,b) for(int i=(a);i>=(b);i--)
15 typedef long long LL;
16 typedef double db;
17 using namespace std;
18 LL x[10],y[10];
19 
20 template<typename T>void read(T &x)  {
21     char ch=getchar(); x=0; T f=1;
22     while(ch!=-&&(ch<0||ch>9)) ch=getchar();
23     if(ch==-) f=-1,ch=getchar();
24     for(;ch>=0&&ch<=9;ch=getchar()) x=x*10+ch-0; x*=f;
25 }
26 
27 db get_S(int x,int y,int xx,int yy) {
28     return abs(x*yy-xx*y)/2.0;
29 }
30 
31 LL gcd(LL a,LL b) { return !b?a:gcd(b,a%b); }
32 
33 db get_L(int x,int y,int xx,int yy) {
34     if(xx-x==0&&yy-y==0) return 0;
35     if(xx-x==0) return abs(yy-y)-1;
36     if(yy-y==0) return abs(xx-x)-1;
37     return gcd(abs(x-xx),abs(y-yy))-1;
38 }
39 
40 int main() {
41 #ifdef ANS
42     freopen(".in","r",stdin);
43     freopen(".out","w",stdout);
44 #endif
45     for(;;) {
46         read(x[1]); read(y[1]);
47         read(x[2]); read(y[2]);
48         read(x[3]); read(y[3]);
49         if(x[1]==0&&y[1]==0&&x[2]==0&&y[2]==0&&x[3]==0&&y[3]==0) break;
50         db S=get_S(x[2]-x[1],y[2]-y[1],x[3]-x[1],y[3]-y[1]);
51         db L=3+get_L(x[1],y[1],x[2],y[2])+get_L(x[1],y[1],x[3],y[3])+get_L(x[2],y[2],x[3],y[3]);
52         db n=S-L/2.0+1;
53         printf("%d\n",(int)n);
54     }
55     Formylove;
56 }
View Code

 

poj2954Triangle

标签:target   ace   names   for   hide   splay   alt   namespace   stream   

原文地址:https://www.cnblogs.com/Achenchen/p/9513348.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!