acgo题库
  • 首页
  • 题库
  • 题单
  • 竞赛
  • 讨论
  • 排行
  • 团队
  • 备赛专区

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
登录
注册
题目详情题解(0)讨论(0)提交记录(0)
  • 广搜 + 队列(queue)

    userId_undefined

    回来看看

    倔强青铜
    41阅读
    0回复
    0点赞
  • 题解

    userId_undefined

    法兰西玫瑰

    倔强青铜
    38阅读
    0回复
    0点赞
  • 题解(广度优先)

    #include <iostream> #include <queue> #include <algorithm> using namespace std; int v[200005]; int main() { int n,k; scanf("%d %d",&n,&k); if (n>k) { printf("%d",n-k); return 0; } for (int i=1;i<=2k;i++) { v[i]=-1; } queue<int> que; que.push(n); int m=2k; v[n]=0; while (!que.empty()) { int t=que.front(); que.pop(); if (tk) break; if (t-1>=0&&v[t-1]-1) { que.push(t-1); v[t-1]=v[t]+1; } if (t2<=m&&v[t2]-1) { que.push(t2); v[t2]=v[t]+1; } if (t+1<=k&&v[t+1]-1) { que.push(t+1); v[t+1]=v[t]+1; } } printf("%d",v[k]); return 0; }

    userId_undefined

    SJZ08

    尊贵铂金
    6阅读
    0回复
    0点赞
首页