解题思路:
基础深搜
注意事项:
参考代码:
#include"iostream"
#include"cstdio"
#include"queue"
#include"string.h"
using namespace std;
typedef struct{
int dis,num;
}node;
int main(){
int n,k,ans=0;
bool a[1000000];
cin>>n>>k;
memset(a,false,sizeof(a));
queue
node olds;
olds.dis=0,olds.num=0;
Q.push(olds);
a[0]=true;
while(!Q.empty()){
olds=Q.front();
Q.pop();
ans=olds.dis;
int p=olds.num;
int w=(p+1)%n;
if(!a[w]){
a[w]=true;
node news;
news.dis=olds.dis+1,news.num=w;
Q.push(news);
}
w=(p+k)%n;
if(!a[w]){
a[w]=true;
node news;
news.dis=olds.dis+1,news.num=w;
Q.push(news);
}
}
cout<<olds.dis;
return 0;
}
0.0分
2 人评分