1 条题解

  • 0
    @ 2026-10-25 16:05:38

    思路

    整数轴含倍增的最短操作,处理零点、相等及向后移动。

    参考程序(C++11)

    #include <bits/stdc++.h>
    using namespace std;
    int main(){int n,k;cin>>n>>k;if(n>=k){cout<<n-k<<'\n';return 0;}vector<int>d(200001,-1);queue<int>q;q.push(n);d[n]=0;while(!q.empty()){int x=q.front();q.pop();if(x==k){cout<<d[x]<<'\n';return 0;}for(int v:{x-1,x+1,2*x})if(v>=0&&v<=200000&&d[v]<0){d[v]=d[x]+1;q.push(v);}}}
    
    • 1

    信息

    ID
    1147
    时间
    1000ms
    内存
    64MiB
    难度
    普及−
    标签
    递交数
    1
    已通过
    1
    上传者