• 51Nod


    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

    题解: 

      【x, y】 可以达到的点都是与其最小公约数的倍数的点。 

    #include <iostream> 
    #include <cstdio> 
    #include <cstdlib> 
    #include <cstring>  
    using namespace std;
    const int MAXN = 1000005; 
    
    int n, num[MAXN]; 
    
    long long gcd(long long a, long long b){
    	if(a == 0){
    		return b; 
    	}
    	return gcd(b%a, a); 
    }
    
    int main(){
    
    	int test_num; 
    	long long a, b, x, y, ans_1, ans_2;  
    	while( cin >> test_num ){
    		for(int i=0; i<test_num; ++i){
    			cin >> a >> b >> x >> y; 
    			if(a > b){
    				swap(a, b); 
    			}
    			if(x > y){
    				swap(x, y); 
    			}
    			ans_1 = gcd(a, b); 
    			ans_2 = gcd(x, y); 
    			if(ans_1 == ans_2){
    				cout << "Yes" << endl; 
    			}else{
    				cout << "No" << endl; 
    			}
    		}
    	}
    	return 0; 
    }
    

      

  • 相关阅读:
    基于JavaMail开发邮件发送器工具类
    微服务架构
    图像识别
    Manacher
    左偏树
    虚树
    动态树(Link-Cut Tree)
    Splay
    扩展中国剩余定理(EXCRT)
    K-D树
  • 原文地址:https://www.cnblogs.com/zhang-yd/p/6798803.html
Copyright © 2020-2023  润新知