zoukankan      html  css  js  c++  java
  • 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; 
    }
    

      

  • 相关阅读:
    数据库自动备份(转)
    sqlserver常用全局变量
    Remoting通讯实例
    自定义ORM框架(转转)
    带格式导出数据到Excel
    app.config动态修改及读取
    学习笔记之AJAX无刷新分页
    游标(转转)
    Sql Server索引(转载)
    流Stream个人学习理解
  • 原文地址:https://www.cnblogs.com/zhang-yd/p/6798803.html
Copyright © 2011-2022 走看看