标签:des c style class blog code
Time Limit: 1000/1000 MS
(Java/Others) Memory Limit: 32768/32768 K
(Java/Others)
Total Submission(s): 2059 Accepted
Submission(s): 625
最后知道真相的我眼泪掉下来...
简单数学几何题:
方法1: 遍历两点间的点,判断是否存在整数点。(这种搞了挺久..发现很难写对..最后看Ice_crazy的)
方法2:做一个直角三角形,两直角边的最大公约数不唯一则存在整数点。
有个小疑问,为什么5 0 0 1 0 要输出No呢,不是挡不到吗
1 //218MS 204K 855B G++ 2 #include<stdio.h> 3 int abs(int a) 4 { 5 return a<0?-a:a; 6 } 7 int main(void) 8 { 9 int l,x1,x2,y1,y2; 10 while(scanf("%d",&l)!=EOF && l) 11 { 12 scanf("%d%d%d%d",&x1,&y1,&x2,&y2); 13 if(abs(x2)>l || abs(y2)>l){ 14 puts("Out Of Range");continue; 15 } 16 if(x1==x2 || y1==y2){ 17 puts("No");continue; 18 } 19 int c1=(y2-y1)*x1; 20 int c2=(x2-x1)*y1; 21 22 int ln=x1>x2?x2:x1; 23 int rn=x1>x2?x1:x2; 24 int flag=1; 25 for(int i=ln+1;i<rn;i++){ 26 double y=(((y2-y1)*i-c1+c2)*1.0/(x2-x1)); 27 if((int)y==y){ 28 flag=0;break; 29 } 30 } 31 if(flag) puts("Yes"); 32 else puts("No"); 33 } 34 return 0; 35 } 36 37 /* 38 5 0 0 1 1 39 5 0 0 2 0 40 5 0 0 6 6 41 5 0 0 -1 -1 42 43 5 0 0 0 2 44 5 0 0 1 0 45 5 0 0 0 1 46 */
1 #include<stdio.h> 2 int gcd(int a,int b) 3 { 4 if(a%b==0) return b; 5 else return gcd(b,a%b); 6 7 } 8 int abs(int a) 9 { 10 return a<0?-a:a; 11 } 12 int main(void) 13 { 14 int l,x1,x2,y1,y2; 15 while(scanf("%d",&l),l) 16 { 17 scanf("%d%d%d%d",&x1,&y1,&x2,&y2); 18 if(abs(x2)>l || abs(y2)>l){ 19 puts("Out Of Range");continue; 20 } 21 if(x1==x2 || y1==y2){ 22 puts("No");continue; 23 } 24 int a=abs(x1-x2); 25 int b=abs(y1-y2); 26 if(a<b){ 27 int temp=a;a=b;b=temp; 28 } 29 if(gcd(a,b)==1) puts("Yes"); 30 else puts("No"); 31 } 32 return 0; 33 }
hdu 1577 WisKey的眼神 (数学几何),布布扣,bubuko.com
标签:des c style class blog code
原文地址:http://www.cnblogs.com/GO-NO-1/p/3767236.html