题目链接:https://ac.2333.moe/Problem/view.xhtml?id=1624
[1624] 死胡同
时间限制: 1000 ms 内存限制: 65535 K
问题描述
一个死胡同由排成一列的 n 个格子组成,编号从 1 到 n 。
实验室的“猪猪”一开始在1号格子,开始向前走,每步一格,并且每走 k 步会在当前的格子上打上记号(开始时,1号格子也有记号)。由于这是死胡同,每当“猪猪”走到最左或者最右的格子时,它会改变方向。好奇的“猪猪”在想: 如果我一直走,能否把所有格子都打上记号呢?
聪明的你一定知道答案!
Hint1:如果 n=6,k=2,位置变化为:1 -> 3 -> 5 -> 5 -> 3 -> 1 -> 3 -> 5 .... 显然,此时不能将所有格子打上标记。(如下图)
输入
多组输入数据(组数<=100)
每组数据一行,包含两个正整数 n 和 k。
(1 <= n <= 100000 , 1 <= k <= 100000)
输出
对于每组数据输出一行 YES 或者 NO 代表能否给所有格子打上标记。
样例输入
6 2
6 3
样例输出
NO
YES
提示
无
来源
2015苏州大学ACM-ICPC集训队选拔赛(1)
题目大意: 题目讲的很清楚,不过要注意 k 是可以大于n 的 因为这个 我RE了几发。这个 有人用了搜索写出来的,,我不是用搜索,所以我这里的代码跟搜索没多大关系。
我的思路就是 设置一个数组,比如是记录朝右行走过的点,那么如果你下次还是朝右走,而且这个点已经走过了,那说明已经进入死循环 可以退出了,这样可以减少很多的时间。
上代码:
#i