#include<iostream>
using namespace std;
struct QNode {
int num,cnt;
}Queue[100001];
int N, K;
int s[100001];
void BFS() {
Queue[0].num = N;
Queue[0].cnt = 0;
if (N == K)
{
cout << "0";
return;
}
s[N] = 1;
int i = 0, j = 1;
while (1)
{
if (Queue[i].num < K&&s[Queue[i].num+1]==0)
{
Queue[j].num = Queue[i].num + 1;
Queue[j].cnt = Queue[i].cnt + 1;
s[Queue[j].num] = 1;
if (Queue[j].num == K)
{
cout << Queue[j].cnt;
return;
}
j++;
}
if (Queue[i].num > 0 && s[Queue[i].num - 1] == 0)
{
Queue[j].num = Queue[i].num - 1;
Queue[j].cnt = Queue[i].cnt + 1;
s[Queue[j].num] = 1;
if (Queue[j].num == K)
{
cout << Queue[j].cnt;
return;
}
}
if (Queue[i].num < K && Queue[i].num * 2 < 100001 && s[Queue[i].num * 2] == 0)
{
Queue[j].num = Queue[i].num * 2;
Queue[j].cnt = Queue[i].cnt + 1;
s[Queue[j].num] = 1;
if (Queue[j].num == K)
{
cout << Queue[j].cnt;
return;
}
j++;
}
i++;
}
}
int main()
{
cin>>N>>K;
BFS();
return 0;
}
kuangbin带你飞 专题1Catch That Cow
最新推荐文章于 2022-03-24 11:30:05 发布