51nod 1247 可能的路径 (最大公约数变形)

原创 2015年11月18日 21:20:51


在一个无限大的二维网格上,你站在(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


逆向考虑。题目说是否能从起点到终点,那我们逆向考虑,能不能从终点到起点,然后再一步步寻找规律。发现求出两个数的最大公约数是否相同即可


#include<iostream>
#include<stdio.h>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long LL;
int main()
{
	LL a,b,x,y;
	int n;
	scanf("%d",&n);
	while(n--) {
		scanf("%lld%lld%lld%lld",&a,&b,&x,&y);
		a=__gcd(a,b);
		x=__gcd(x,y);
		if(a==x) printf("Yes\n");
		else printf("No\n");
	}
	return 0;
}








版权声明:本文为博主原创文章,未经博主允许不得转载。

51Nod-1247-可能的路径

ACM模版描述题解神级模拟推导题……经过模拟推导可以推出: (a, b) -> (b, a) ··············································(1) ...
  • f_zyj
  • f_zyj
  • 2016年08月09日 02:06
  • 571

51nod 可能的路径

1247 可能的路径 在一个无限大的二维网格上,你站在(a,b)点上,下一步你可以移动到(a + b, b), (a, a + b), (a - b, b), 或者 (a, a - b)这4个点。 ...
  • lov_vol
  • lov_vol
  • 2016年05月12日 20:50
  • 254

51nod 1247 可能的路径

逆向思维,先证明点p1可以到点p2,然后可以从p2返回p1。然后找一点m,如果点(a,b)可以到达m,并且点(x,y)也可以到大m,则(a,b)可以到达(x,y) 相关讨论里给的证明: 给个不太严...
  • gyhguoge01234
  • gyhguoge01234
  • 2017年07月30日 00:00
  • 98

51nod1247 可能的路径

辗转相减
  • sdfzyhx
  • sdfzyhx
  • 2017年06月23日 16:14
  • 90

51Nod 1247 可能的路径

在一个无限大的二维网格上,你站在(a,b)点上,下一步你可以移动到(a + b, b), (a, a + b), (a - b, b), 或者 (a, a - b)这4个点。 给出起点坐标(a,b)...
  • Hermann_weyl
  • Hermann_weyl
  • 2016年12月12日 19:34
  • 203

51nod_1247可能的路径

#include #include #include #include #include #include #include using namespace std; int t; long lo...
  • qq_29660153
  • qq_29660153
  • 2017年07月24日 16:28
  • 97

51nod 1247 可能的路径 (最大公约数变形)

在一个无限大的二维网格上,你站在(a,b)点上,下一步你可以移动到(a + b, b), (a, a + b), (a - b, b), 或者 (a, a - b)这4个点。 给出起点坐标(a,b)...
  • h1021456873
  • h1021456873
  • 2015年11月18日 21:20
  • 408

51nod 1247 可能的路径

思路+gcd
  • SenyeLicone
  • SenyeLicone
  • 2017年06月23日 08:21
  • 179

【51nod】1247 可能的路径

看到题目先自己操作一下,发现(a,b)->(a+b,b)->(b+a,a+b-b)=(b+a,a)->(b,a) 即坐标(a,b)与(b,a)可以互换; 又发现若a>b;(a,b)->…->(a%...
  • zhjcezh
  • zhjcezh
  • 2017年02月17日 21:40
  • 84

51nod 1247 可能的路径

#include using namespace std; long long gcd(long long a,long long b) { return a%b?gcd(b,a%b):b; }...
  • xin_jun
  • xin_jun
  • 2016年11月05日 00:14
  • 64
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:51nod 1247 可能的路径 (最大公约数变形)
举报原因:
原因补充:

(最多只允许输入30个字)