题目链接:http://www.51nod.com/onlineJudge/questionCode.html
题意:中文题诶~
思路:(a, b)可以直接到达(a+b, b), (a, a+b), (a-b, b), (a, a-b),显然这样的路径是可逆的。那么要从(a, b)到(x, y),当且仅当存在一点p, 从(a, b), (x, y)出发都能到达。
由题意还可以知道,若gcd(a, b)=d,那么从(a, b)出发必定可以到达(d, d),那么显然由(a, b)可以到达(x, y)的充要条件是gcd(a, b)=gcd(x, y)。
代码:
#include <stdio.h>
#define ll long long
using namespace std; int get_gcd(ll x, ll y){
return y==?x:get_gcd(y, x%y);
} int main(void){
ll a, b, x, y;
int t;
scanf("%d", &t);
while(t--){
scanf("%lld%lld%lld%lld", &a, &b, &x, &y);
int cnt1=get_gcd(a, b);
int cnt2=get_gcd(x, y);
if(cnt1==cnt2){
printf("Yes\n");
}else{
printf("No\n");
}
}
}