1 条题解
-
012107张凌睿 (202112107张凌睿) LV 10 @ 2022-08-07 22:31:40
#include<algorithm> #include<bitset> #include<cstdio> #include<cstring> #include<ctime> #include<cmath> #include<cstdlib> #include<iostream> #include<iomanip> #include<map> #include<queue> #include<stack> #include<set> #include<vector> #include<bits/stdc++.h> using namespace std; const int MAXN=100000+10; int n,k; bool vis[MAXN]; struct Node { int x,steps; Node(int _x,int _steps):x(_x),steps(_steps){}; }; queue<Node> q; void bfs() { q.push(Node(n,0)); vis[n]=true; while(!q.empty()) { Node cur=q.front(); q.pop(); int x=cur.x; if(x==k) { cout<<cur.steps<<endl; break; } else for(int i=1;i<=3;++i) { int nx; if(i==1)nx=x-1; if(i==2)nx=x+1; if(i==3)nx=x*2; if(nx>=0&&nx<=100000&&!vis[nx]) { vis[nx]=true; q.push(Node(nx,cur.steps+1)); } } } } int main() { memset(vis,false,sizeof(vis)); cin>>n>>k; if(n==k) { cout<<0<<endl; return 0; } bfs(); return 0; }
- 1
信息
- ID
- 2079
- 难度
- 8
- 分类
- (无)
- 标签
- 递交数
- 12
- 已通过
- 6
- 通过率
- 50%
- 被复制
- 3
- 上传者