1. 程式人生 > >洛谷——P1170 兔八哥與獵人

洛谷——P1170 兔八哥與獵人

題目 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 兔八哥與獵人