话不多说,看代码吧
#include<bits/stdc++.h>
using namespace std;
struct tt
{
int cs,wz;
};
bool bj[30001];
void bfs();
int n,m;
queue<tt> q;
int main()
{
cin>>n>>m;
bfs();
return 0;
}
void bfs()
{
tt dq,hm;
dq.cs=0;
dq.wz=n;
q.push(dq);
while(!q.empty())
{
dq=q.front;
q.pop();
if(dq.wz==m)
{
cout<<dq.cs<<endl;
return;
}
int d1,d2;
d1=dq.wz+1;
if(!bj[d1]&&d1>=1)
{
hm.wz=d1;
hm.cs=dq.cs+1;
}
if(dq.wz<m&&!bj[dq.wz*2])
{
d2=dq.wz*2;
hm.wz=d2;
hm.cs=dq.cs+1;
}
}
}