【HIHOCODER 1599】逃离迷宫4
描述
小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)都没有与(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的更多相关文章
- hihocoder 1519 : 逃离迷宫II
题目链接 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi被坏女巫抓进里一间有N x M个格子组成的矩阵迷宫. 有些格子是小Hi可以经过的,我们用'.'表示:有些格 ...
- hdu 1728:逃离迷宫(DFS,剪枝)
逃离迷宫 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- HDU 1728:逃离迷宫(BFS)
http://acm.hdu.edu.cn/showproblem.php?pid=1728 逃离迷宫 Problem Description 给定一个m × n (m行, n列)的迷宫,迷宫中有 ...
- hdoj 1728 逃离迷宫
逃离迷宫 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- 逃离迷宫(HDU 1728 BFS)
逃离迷宫 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- hdu 4524 郑厂长系列故事——逃离迷宫 小水题
郑厂长系列故事——逃离迷宫 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) To ...
- HDU 1728 逃离迷宫(DFS||BFS)
逃离迷宫 Problem Description 给定一个m × n (m行, n列)的迷宫,迷宫中有两个位置,gloria想从迷宫的一个位置走到另外一个位置,当然迷宫中有些地方是空地,gloria可 ...
- hdu 1728 逃离迷宫 (BFS)
逃离迷宫 Time Limit : 1000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Submissi ...
- HDU 1728 逃离迷宫(DFS)
题目网址:http://acm.hdu.edu.cn/showproblem.php?pid=1728 题目: 逃离迷宫 Time Limit: 1000/1000 MS (Java/Others) ...
随机推荐
- block size大小
1.用tune2fs查看block size大小: 1 2 tune2fs -l /dev/sda1 |grep "Block size" Block size: 1024 2.用 ...
- 牛客网Java刷题知识点之子类继承不了父类里的(private属性、private方法、构造方法)
不多说,直接上干货! 子类可以继承父类的属性和方法,除了那些private的外还有一样是子类继承不了的---构造器.对于构造器而言,它只能够被子类调用,而不能被子类继承. 调用父类的构造方法我们使用s ...
- python学习《一》
从词篇博客开始,记录python3.0学习笔记 python3里 字符串用双引号,或者单引号,包起来 3双引号和3单引号 代表换行
- 七,JOBC数据库编程
七,JOBC数据库编程 七,JOBC数据库编程 一,java数据库编程步骤 1,将数据库驱动包考入lib目录: 2,加载驱动--整个操作数据库程序运行期间只需要加载一次 Class.forName(& ...
- git忽略已经被提交的文件
git忽略已经被提交的文件 git rm --cached logs/xx.log 然后更新 .gitignore 忽略掉目标文件, 最后 git commit -m "We really ...
- css经典布局之双飞翼
经典的两个布局方式有圣杯布局和双飞翼布局,圣杯布局主要用在国外,双飞翼布局是淘宝的UED团队开发的,优化了圣杯布局. 主要解决页面分不同列显示的问题, 一般只做页面的时候,我们分三部分,左边, ...
- 结合源码看nginx-1.4.0之nginx内存管理详解
目录 0. 摘要 1. nginx内存结构设计 2. nginx内存数据结构 3. nginx内存管理原理 4. 一个简单的内存模型 5. 小结 6. 参考资料 0. 摘要 内存管理,是指软件运行时对 ...
- 8.html表格相关的标记9.html表格实战《简单的网页布局》
<html> <head> <title>第八课标题表格</title> <meta charset="utf-8"> ...
- ABAP事件的简单用法
1.1.事件: 用于捕获某类对象状态的改变来触发事件的方法,并进行处理 1.2.定义:可以在类或接口中进行声明 EVENTS|CLASS-EVENTS evt EXPORTING … VALUE(p ...
- [Java]Eclipse无法import “com.sun.management.OperatingSystemMXBean”的解决方法
背景: 当使用jdk的自带的API获取系统信息时,代码中import “com.sun.management.OperatingSystemMXBean”出现报错. 解决方法: Eclipse默认把这 ...