描述


小Hi被坏女巫抓进一座由无限多个格子组成的矩阵迷宫。

小Hi一开始处于迷宫(x, y)的位置,迷宫的出口在(a, b)。小Hi发现迷宫被女巫施加了魔法,假设当前他处在(x, y)的位置,那么他只能移动到(x+y, y)或者(x, x+y)的位置上。

小Hi想知道自己能不能逃离迷宫。

输入

第一行包含一个整数T,代表测试数据的组数。

以下N行每行包含4个整数x, y, a, b,表示起点在(x, y),出口在(a, b)。

对于30%的数据,1 ≤ T ≤ 10, 1 ≤ x, y, a, b ≤ 100

对于80%的数据,1 ≤ T ≤ 1000, 1 ≤ x, y, a, b ≤ 1000

对于100%的数据,1 ≤ T ≤ 10000, 1 ≤ x, y, a, b ≤ 109

输出

对于每组数据输出一行YES或者NO,表示小Hi是否能逃离迷宫。

样例输入

2
1 1 8 13
2 2 100 101

样例输出

YES
NO

题解


倒着考虑,就是每次

\[(a,b) \rightarrow (a-b,b)
\]

或者

\[(a,b) \rightarrow (a,b-a)
\]

每次都是大的减小的,而且每次都得减到小于等于小的那个数。

如果(a,b)都没有与(x,y)相等,直接取模就好,因为大的一直要减小的,而且这其中不会出现(x,y)。

如果(a,b)其中一个与(x,y)相等,那么另一个与之差值只有在能够整除它的情况下,才会得到(x,y)。

#include <bits/stdc++.h>
#define ll long long
#define inf 1000000000
#define PI acos(-1)
#define bug puts("here")
#define REP(i,x,n) for(int i=x;i<=n;i++)
#define DEP(i,n,x) for(int i=n;i>=x;i--)
#define mem(a,x) memset(a,x,sizeof(a))
using namespace std;
inline int read(){
int x=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-') f=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
return x*f;
}
int x,y;
bool check(int a,int b){
if(a<x||b<y) return false;
if(a==x&&b==y) return true;
if(a>b){
if(b==y&&(a-x)%b==0) return true;
return check(a%b,b);
}else{
if(a==x&&(b-y)%a==0) return true;
return check(a,b%a);
}
return false;
}
int main(){
int T=read();
while(T--){
x=read(),y=read();
int a=read(),b=read();
printf(check(a,b)?"YES\n":"NO\n");
}
return 0;
}

最新文章

  1. 纯JS实现俄罗斯方块,打造属于你的游戏帝国
  2. 转JAVA2
  3. 装载:深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件
  4. 不能错过的XCode插件
  5. Vlc基础数据结构记录
  6. Linux常用C函数---字符测试篇
  7. 黑马程序员_&lt;&lt;String类&gt;&gt;
  8. Oracle常用查询
  9. Vue常用开源项目汇总
  10. SQL Sever2005卸载问题解决措施
  11. python-*args和**kwargs作用和区别
  12. flutter 容器
  13. Java 泛型中的PECS原则
  14. P3723 [AH2017/HNOI2017]礼物
  15. 关于jQuery——attr方法和prop方法获取input的checked属性操作
  16. 编程语言分类,安装python解释器,变量
  17. Shell标准输出、标准错误
  18. 以太坊(Ethereum)智能合约NodeJS/Web3 使用
  19. xdoj 1146 (逆向01背包)
  20. Spring MVC前后端数据交互总结

热门文章

  1. (转)Centos 7.3 用户和组管理
  2. RDL Web报表抛出ReportServerException,已取消该操作
  3. MDX分页查询
  4. 《四 spring源码》手写springmvc
  5. Ionic开发-常用命令
  6. C#基础文件file的各种套路
  7. PHP 获取JSON json_decode返回NULL解决办法
  8. HttpServeletRequest
  9. Google Chrome 浏览器的备用(离线)安装程序
  10. Linux下环境搭建(四)——jenkins+gitlab+jmeter实践