51nod1247(gcd)

Posted ygeloutingyu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了51nod1247(gcd)相关的知识,希望对你有一定的参考价值。

题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1247

 

题意:中文题诶~

 

思路:(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)。

 

代码:

技术分享
 1 #include <stdio.h>
 2 #define ll long long
 3 using namespace std;
 4 
 5 int get_gcd(ll x, ll y){
 6     return y==0?x:get_gcd(y, x%y);
 7 }
 8 
 9 int main(void){
10     ll a, b, x, y;
11     int t;
12     scanf("%d", &t);
13     while(t--){
14         scanf("%lld%lld%lld%lld", &a, &b, &x, &y);
15         int cnt1=get_gcd(a, b);
16         int cnt2=get_gcd(x, y);
17         if(cnt1==cnt2){
18             printf("Yes\n");
19         }else{
20             printf("No\n");
21         }
22     }
23 }
View Code

 

以上是关于51nod1247(gcd)的主要内容,如果未能解决你的问题,请参考以下文章

1247 可能的路径 逆向思维

51Nod1247 可能的路径

51nod 1247可能的路径

51 Nod 1247 可能的路径(数学)

51nod 1011 最大公约数GCD

51NOD-01011 最大公约数GCD