1 条题解
-
1
bfs+记忆化
#include<bits/stdc++.h> using namespace std; long a[10010][4]; bool q[10000]; int main(){ long i,n,m,h,t; cin>>n>>m; if(n==m) { cout<<0; return 0; } a[1][1]=n; q[n]=1; a[1][2]=0; h=1; t=2; while(h<t) { if(a[H][1]>0) { if(!q[a[h][1]-1]){ a[t][1]=a[h][1]-1; q[a[t][1]]=1; a[t][2]=a[h][2]+1; if(a[t][1]==m) { cout<<a[t][2]; return 0; } t++; } if(a[h][1]*2<=1e4&&!q[a[h][1]*2]) a[t][1]=a[h][1]*2; q[a[t][1]]=1; a[t][2]=a[h][2]+1; if(a[t][1]==m) { cout<<a[t][2]; return 0; } t+; } } h++; } }
- 1
信息
- ID
- 175
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 5
- 标签
- 递交数
- 87
- 已通过
- 20
- 上传者