zoukankan      html  css  js  c++  java
  • 51nod 1247可能的路径

    在一个无限大的二维网格上,你站在(a,b)点上,下一步你可以移动到(a + b, b), (a, a + b), (a - b, b), 或者 (a, a - b)这4个点。
    给出起点坐标(a,b),以及终点坐标(x,y),问你能否从起点移动到终点。如果可以,输出"Yes",否则输出"No"。
    例如:(1,1) 到 (2,3),(1,1) -> (2,1) -> (2,3)。
    Input
    第1行:一个数T,表示输入的测试数量(1 <= T <= 5000)
    第2 - T + 1行:每行4个数,a, b, x, y,中间用空格分隔(1 <= a, b, x, y <= 10^18)
    Output
    输出共T行,每行对应1个结果,如果可以,输出"Yes",否则输出"No"。
    Input示例
    2
    1 1 2 3
    2 1 2 3
    Output示例
    Yes
    Yes


    由于往(a + b, b), (a, a + b), (a - b, b), (a, a - b)这四个方向走,那么走到一个为0,令一个最小时,就是它的最大公约数。
    和更相减损术求最大公约数的原理一样,那么只有判断gcd(a,b)和gcd(x,y)是否一样就行。
     1 #include <bits/stdc++.h>
     2 #define ll long long
     3 using namespace std;
     4 ll a, b, x, y;
     5 int main() {
     6     int t;
     7     cin >> t;
     8     while (t--) {
     9         cin >> a >>b >> x >> y;
    10         if(__gcd(a,b) == __gcd(x,y)) printf("Yes
    ");
    11         else printf("No
    ");
    12     }
    13     return 0;
    14 }
  • 相关阅读:
    VIJOS-P1340 拯救ice-cream(广搜+优先级队列)
    uva 11754 Code Feat
    uva11426 GCD Extreme(II)
    uvalive 4119 Always an Interger
    POJ 1442 Black Box 优先队列
    2014上海网络赛 HDU 5053 the Sum of Cube
    uvalive 4795 Paperweight
    uvalive 4589 Asteroids
    uvalive 4973 Ardenia
    DP——数字游戏
  • 原文地址:https://www.cnblogs.com/xingkongyihao/p/8976618.html
Copyright © 2011-2022 走看看