题解
【入门】鸡飞狗不跳
1 条题解
-
0
#include <bits/stdc++.h> #define ll long long #define ld long double #define ull unsigned long long using namespace std; int winx,stax=1; struct node{ int x; int nowstep; }; int n; int v[1000005]; int main(){ cin>>stax>>winx; queue <node> q; node start={stax,0}; q.push(start); while(!q.empty()){ node t=q.front(); int ax[13]={0,t.x-1,t.x+1,t.x*2}; for(int i=1;i<=3;i++){ int newx=ax[i]; if(newx>=1&&newx<=100000&&v[newx]==0){ node newnode={newx,t.nowstep+1}; q.push(newnode); v[newx]=1; // cout<<q.back().x<<" "<<q.back().y<<" "<<newnode.nowstep<<"\n"; } } if(t.x==winx){ cout<<t.nowstep; return 0; } q.pop(); } }
- 1