洛谷——P1170 兔八哥與獵人
阿新 • • 發佈:2017-11-19
題目 algo spa cstring region orange fine bsp -c
P1170 兔八哥與獵人
題目描述
兔八哥躲藏在樹林旁邊的果園裏。果園有M × N棵樹,組成一個M行N列的矩陣,水平或垂直相鄰的兩棵樹的距離為1。兔八哥在一棵果樹下。
獵人背著獵槍走進了果園,他爬上一棵果樹,準備殺死兔八哥。
如果獵人與兔八哥之間沒有其它的果樹,獵人就可以看到兔八哥。
現己知獵人和兔八哥的位置,編寫程序判斷兔子所在的位置是否安全.
輸入輸出格式
輸入格式:
第一行為n,表示有n(n ≤ 100,000)組數據,每組數據的第一行為兩個正整數ax和ay,表示獵人的位置,第二行為兩個正整數bx和by,表示兔八哥的位置(1 ≤ ax, ay, bx, by ≤ 100,000,000)。
輸出格式:
共有n行,每行為“yes”或“no”表示兔八哥的位置是否安全。
輸入輸出樣例
輸入樣例#1: 復制1 1 1 1 2輸出樣例#1: 復制
no
zz一樣的、、
這個題跟以前我們做過的一個叫做儀仗隊的題很像
我們設我們的當前位置為(0,0)目標位置為(x,y)如果gcd(x,y)==1那麽這個點一定可以被看到,反之則不可以
註意,這個地方的(x,y)不可以出現負數,因此要用絕對值!!!
沒有寫絕對值然後就是100到0分的跨越
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #define N 10 using namespace std; int T,x1,x2,y1,y2,x,y; int xx[8]={1,1,1,0,0,-1,-1,-1}; int yy[8]={1,0,-1,1,-1,1,0,-1}; int read() { int x=0,f=1; char ch=getchar(); while(ch<‘0‘||ch>‘9‘){if(ch==‘-‘)f=-1;ch=getchar();} while(ch>=‘0‘&&ch<=‘9‘) x=x*10+ch-‘0‘,ch=getchar(); return x*f; } int GCD(int a,int b) { if(b==0) return a; return GCD(b,a%b); } int main() { T=read(); while(T--) { x1=read(),y1=read(); x2=read(),y2=read(); x=abs(x1-x2),y=abs(y1-y2); if(GCD(x,y)==1) printf("no\n"); else printf("yes\n"); } return 0; }
洛谷——P1170 兔八哥與獵人