[Offer收割]编程练习赛29 题目1 : 逃离迷宫4
2017-10-01 14:26
134 查看
时间限制:10000ms
单点时限:1000ms
内存限制:256MB
小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是否能逃离迷宫。
样例输入
样例输出
思路:如果能由(x,y)走到(a,b),那么就可以由(a,b)倒着回到(x,y)。dfs即可。其中要注意(10000000,1)这样的数据。
单点时限:1000ms
内存限制:256MB
描述
小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
思路:如果能由(x,y)走到(a,b),那么就可以由(a,b)倒着回到(x,y)。dfs即可。其中要注意(10000000,1)这样的数据。
#include<bits/stdc++.h> using namespace std; int x,y; int dfs(int a,int b) { if(a==x&&b==y)return 1; if(a==0||b==0)return 0; if(a==b)return 0; if(a>b) { if(a%b==0)return dfs(a-(a/b-1)*b,b); return dfs(a-(a/b)*b,b); } if(b%a==0)return dfs(a,b-(b/a-1)*a); return dfs(a,b-(b/a)*a); } int main() { int T;cin>>T; while(T--) { int a,b; scanf("%d%d%d%d",&x,&y,&a,&b); puts(dfs(a,b)?"YES":"NO"); } return 0; }
相关文章推荐
- hiho 1599 dfs乱搞 [Offer收割]编程练习赛29 Problem A 逃离迷宫4
- [Offer收割]编程练习赛29 题目3 : 最大得分(DP)
- [Offer收割]编程练习赛6 题目1 : Playfair密码表 (密码学——模拟)
- [Offer收割]编程练习赛3 - 题目3 : 智力竞赛
- [Offer收割]编程练习赛3 - 题目3 : 智力竞赛
- [Offer收割]编程练习赛38 题目1 : 漏写的数字
- [Offer收割]编程练习赛29
- hihoCoder[Offer收割]编程练习赛1题目解析
- [offer收割]编程练习赛3-题目2:机会渺茫
- hihoCoder[Offer收割]编程练习赛2题目解析
- [Offer收割]编程练习赛27:题目2 : 两个机器人
- 【Offer收割]编程练习赛15-题目1 : 偶像的条件】
- hiho 1601 背包DP乱搞 [Offer收割]编程练习赛29 Problem C 最大得分
- [Offer收割]编程练习赛38 题目1 : 漏写的数字【打表】
- [Offer收割]编程练习赛40 题目3 : 01间隔方阵
- hihoCoder[Offer收割]编程练习赛3题目解析
- 【[Offer收割]编程练习赛14 C】可疑的记录
- [Offer收割]编程练习赛1 hihocoder 1271 舰队游戏 (状态压缩+贪心 好题)
- [Offer收割]编程练习赛2 hihocoder 1275 扫地机器人 (计算几何+模拟 比较烦)
- [Offer收割]编程练习赛4