3 条题解

  • 1
    @ 2023-9-9 19:23:30

    #include <bits/stdc++.h> using namespace std; queue<int>q; int dis[200005]; int main() { memset(dis,-1,sizeof(dis)); int n,k,ans=0; cin>>n>>k; dis[n]=0; q.push(n); while (q.size()>0){ int now=q.front(); q.pop(); if (nowk){ ans=dis[now]; cout<<ans; return 0; } if (now>0 && dis[now-1]-1){ dis[now-1]=dis[now]+1; q.push(now-1); } if (now<=100000 && dis[now+1]-1){ dis[now+1]=dis[now]+1; q.push(now+1); } if (now<=100000 && dis[now*2]-1){ dis[now2]=dis[now]+1; q.push(now2); } } return 0; }

    • 0
      @ 2023-10-15 17:03:08

      广搜即可AC

      代码:

      • 0
        @ 2023-9-9 19:23:36
        #include <bits/stdc++.h>
        using namespace std;
        queue<int>q;
        int dis[200005];
        int main()
        {
            memset(dis,-1,sizeof(dis));
            int n,k,ans=0;
            cin>>n>>k;
            dis[n]=0;
            q.push(n);
            while (q.size()>0){
                int now=q.front();
                q.pop();
                if (now==k){
                    ans=dis[now];
                    cout<<ans;
                    return 0;
                }
                if (now>0 && dis[now-1]==-1){
                    dis[now-1]=dis[now]+1;
                    q.push(now-1);
                }
                if (now<=100000 && dis[now+1]==-1){
                    dis[now+1]=dis[now]+1;
                    q.push(now+1);
                }
                if (now<=100000 && dis[now*2]==-1){
                    dis[now*2]=dis[now]+1;
                    q.push(now*2);
                }
            }
            return 0;
        }
        
        • 1

        信息

        ID
        427
        时间
        1000ms
        内存
        256MiB
        难度
        6
        标签
        递交数
        21
        已通过
        10
        上传者