描述


小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;
}

【HIHOCODER 1599】逃离迷宫4的更多相关文章

  1. hihocoder 1519 : 逃离迷宫II

    题目链接 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi被坏女巫抓进里一间有N x M个格子组成的矩阵迷宫. 有些格子是小Hi可以经过的,我们用'.'表示:有些格 ...

  2. hdu 1728:逃离迷宫(DFS,剪枝)

    逃离迷宫 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  3. HDU 1728:逃离迷宫(BFS)

    http://acm.hdu.edu.cn/showproblem.php?pid=1728 逃离迷宫 Problem Description   给定一个m × n (m行, n列)的迷宫,迷宫中有 ...

  4. hdoj 1728 逃离迷宫

    逃离迷宫 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  5. 逃离迷宫(HDU 1728 BFS)

    逃离迷宫 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  6. hdu 4524 郑厂长系列故事——逃离迷宫 小水题

    郑厂长系列故事——逃离迷宫 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) To ...

  7. HDU 1728 逃离迷宫(DFS||BFS)

    逃离迷宫 Problem Description 给定一个m × n (m行, n列)的迷宫,迷宫中有两个位置,gloria想从迷宫的一个位置走到另外一个位置,当然迷宫中有些地方是空地,gloria可 ...

  8. hdu 1728 逃离迷宫 (BFS)

    逃离迷宫 Time Limit : 1000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Submissi ...

  9. HDU 1728 逃离迷宫(DFS)

    题目网址:http://acm.hdu.edu.cn/showproblem.php?pid=1728 题目: 逃离迷宫 Time Limit: 1000/1000 MS (Java/Others)  ...

随机推荐

  1. Jexus~docker与它产生了暖味

    前段时间写了很多docker for .net core的文章,用来快速部署微服务相当给力,而尝到了香头的我们希望把.net frameworks的程序也使用docker来部署一下,那么接下来我就结果 ...

  2. 《四 spring源码》spring的事务注解@Transactional 原理分析

    先了解什么是注解 注解 Jdk1.5新增新技术,注解.很多框架为了简化代码,都会提供有些注解.可以理解为插件,是代码级别的插件,在类的方法上写:@XXX,就是在代码上插入了一个插件. 注解不会也不能影 ...

  3. 打war包时无法把src/main/java里的xml文件打包上去

    maven打包默认打src/mian/resource里面的xml,而不会去src/main/java,所以 再pom.xml里的bulid节点里加上 <resources> <re ...

  4. Dell服务器安装系统中遇到的坑

    在本学期开学初期,由于后续实验的需要,老师为我们配置了服务器,该服务器的型号为Dell Power R730. 由于我也是一个小白,在服务器安装系统的过程中,遇到了一些麻烦,在这里记录下来,希望自己能 ...

  5. winform代码生成器(三)

    代码下载 地址 http://pan.baidu.com/s/1nuZjyat 接上面的两篇. 用户有时对 从表的 排版不喜欢,可以因某些字太长,需要拉长一些,有些则需要隐藏. 有什么办法呢? 我的思 ...

  6. C# 指定WebBrowser 的 User Agent 版本

    今天用WebBrowser 打开网页,本机ie是ie9 可是WebBrowser 显示的效果明显不是ie9 ,百度查资料才知道,其实是因为直接用IE跟使用WebBrowser 运行的是不同的User ...

  7. 电脑Bois中usb模式启动热键

    组装机主板 品牌笔记本 品牌台式机 主板品牌 启动按键 笔记本品牌 启动按键 台式机品牌 启动按键 华硕主板 F8 联想笔记本 F12 联想台式机 F12 技嘉主板 F12 宏基笔记本 F12 惠普台 ...

  8. SQL SERVER 同一个表并且是同一个时间字段进行相减

    表AID NUM TIEM1 10 2012-06-10 10:10:002 20 2012-06-10 20:10:003 20 2012-06-10 20:10:004 10 2012-06-10 ...

  9. logback整合Logstash

    1.依赖 <dependency> <groupId>net.logstash.logback</groupId> <artifactId>logsta ...

  10. AJPFX关于Java中的集合

    ava API中所用的集合类,都是实现了Collection接口,他的一个类继承结构如下: Collection<--List<--Vector Collection<--List& ...