3 条题解
-
3
#include<bits/stdc++.h> using namespace std; int n,k; struct id { int x,s; }; const int N=1e5; queue<id>q; bool qp[N+5]; int main() { memset(qp,true,sizeof(qp)); cin>>n>>k; q.push(id{n,0}); qp[n]=false; while(!q.empty()) { id t=q.front(); q.pop(); if(t.x+1==k||t.x-1==k||t.x*2==k) { cout<<t.s+1; return 0; } if(t.x+1<=N&&qp[t.x+1]) { q.push(id{t.x+1,t.s+1}); qp[t.x+1]=false; } if(t.x*2<=N&&qp[t.x*2]) { q.push(id{t.x*2,t.s+1}); qp[t.x*2]=false; } if(t.x-1>=0&&qp[t.x-1]) { q.push(id{t.x-1,t.s+1}); qp[t.x-1]=false; } } return 0; }
信息
- ID
- 1345
- 时间
- 1500ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- 递交数
- 414
- 已通过
- 111
- 上传者