HDU 1222 Wolf and Rabbit
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1222
当m和n互质的时候,wolf可以走过所有的洞。
因为当以步数为m来数n个数的时候,数过一周以后,偏移量是n%m,于是新的起点是n%m,要数到所有的数字,就必须把1-m区间当中的数都数到,没数过一周,在1-m这个区间内,前进的步数都是n%m,因此可以进一步描述问题,在1-m这个区间之内,每次前进n%m次,能否将所有的点都数过,于是n=m,m=n%m,直到最后m=1,这样所有的点都会被数过,这便是最大公约数的问题。
#include<iostream>
#include<cstdio>
using namespace std;
int gcd(int a,int b){
while(a%b!=0){
int r = a%b;
a=b;
b=r;
}
return b;
}
int main(){
int p;
scanf("%d",&p);
while(p--){
int m,n;
scanf("%d %d",&m,&n);
if(gcd(m,n)==1){
printf("NO\n");
}else{
printf("YES\n");
}
}
return 0;
}

浙公网安备 33010602011771号