HDU1577--WisKey的眼神(扩展欧几里德)
2017-05-25 17:35
183 查看
Do more with less
但是Rabbit总是喜欢扮神秘,一天WisKey去食堂排队等着买饭,突然收到一道短消息,是Rabbit发的,”呵呵,又看见你了,你没看到我吧”.WisKey马上拉长脖子扫描食堂,可是就是看不到,再发短信问Rabbit在哪,Rabbit回信曰”我已经在寝室了”.WisKey无语….
假设食堂是个正方形,食堂中心坐标为(0,0),长度为2*L, WisKey保证在食堂内.
因为是吃饭高峰期,所以每个点上都站着人,当某些人处在同一直线上时就有可能被前面的人挡住.
聪明的ACMer请你帮帮WisKey,告诉他能不能看见Rabbit.
以L=0为结束.
Rabbit不在食堂输出”Out Of Range”.
5 0 0 2 0
5 0 0 6 6
5 0 0 -1 -1
0
No
Out Of Range
Yes
横坐标之差dx和纵坐标之差dy最大公约数为1时候满足上面的条件。
Description
WisKey的眼镜有500多度,所以眼神不大好,而且他有个习惯,就是走路喜欢看着地(不是为了拣钱哦^_^),所以大家下次碰见他的时候最好主动打下招呼,呵呵.但是Rabbit总是喜欢扮神秘,一天WisKey去食堂排队等着买饭,突然收到一道短消息,是Rabbit发的,”呵呵,又看见你了,你没看到我吧”.WisKey马上拉长脖子扫描食堂,可是就是看不到,再发短信问Rabbit在哪,Rabbit回信曰”我已经在寝室了”.WisKey无语….
假设食堂是个正方形,食堂中心坐标为(0,0),长度为2*L, WisKey保证在食堂内.
因为是吃饭高峰期,所以每个点上都站着人,当某些人处在同一直线上时就有可能被前面的人挡住.
聪明的ACMer请你帮帮WisKey,告诉他能不能看见Rabbit.
Input
输入L,sx,sy,px,py; L<=1000,sx,sy是WisKey的坐标,px,py是Rabbit的坐标.以L=0为结束.
Output
对于每组输入数据,能看见输出”Yes”,看不见输出”No”.Rabbit不在食堂输出”Out Of Range”.
Sample Input
5 0 0 1 15 0 0 2 0
5 0 0 6 6
5 0 0 -1 -1
0
Sample Output
YesNo
Out Of Range
Yes
思路
要求就是两个整数坐标点之间的连线不经过整数坐标点。横坐标之差dx和纵坐标之差dy最大公约数为1时候满足上面的条件。
代码
#include<cstdio> #include<cmath> #include<iostream> using namespace std; int gcd(int x , int y) { if(!y) return x; else return gcd(y , x%y); } int main() { int L,x1,y1,x0,y0; while(scanf("%d",&L) != EOF &&L) { bool p = false; scanf("%d %d %d %d",&x0,&y0,&x1,&y1); if(x1 < -L || x1 > L || y1 < -L || y1 > L) { printf("Out Of Range\n"); continue; } int dx = (int)fabs(x0 - x1); int dy = (int)fabs(y0 - y1); if(dx <= 1 && dy <= 1) { printf("Yes\n"); continue; } if(x0 == x1 || y1 == y0) { printf("No\n"); continue; } if(gcd(dx,dy) == 1) p = true; if(p) printf("Yes\n"); else printf("No\n"); } }
相关文章推荐
- hdu1577 WisKey的眼神
- HDU1577-WisKey的眼神
- HDU1577 WisKey的眼神
- ZOJ - 3593 One Person Game (扩展欧几里德)
- zoj3593One Person Game (扩展欧几里德)
- One Person Game(zoj3593+扩展欧几里德)
- POJ 1061 青蛙的约会(扩展欧几里德)
- POJ 2142 The Balance(扩展欧几里德解方程)
- poj 2115 C Looooops(扩展欧几里德)
- Codeforces Beta Round #7 C. Line 扩展欧几里德
- [数论]青蛙约会 (扩展欧几里德)
- 扩展欧几里德
- hihoCoder 1297 扩展欧几里德 && POJ 1061 青蛙的约会
- POJ 1061 青蛙的约会(扩展欧几里德)
- UVA11426 GCD - Extreme (II) 欧拉函数`扩展欧几里德应用
- 扩展欧几里德板子 poj2142
- PKU 1061 (扩展欧几里德)
- POJ2115——C Looooops(扩展欧几里德+求解模线性方程)
- 独自poj2115(扩展欧几里德)
- POJ 1061 青蛙约会(扩展欧几里德)