题如解
2025-07-30 14:12:39
发布于:江苏
1阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
const int N = 2e5+5;
int n,k;
int a[N];
void bfs(int x) {
queue<int> q;
q.push(x);
a[x] = 0;
while (!q.empty() ) {
int r = q.front() ;
q.pop();
if(r == k) {
cout<<a[k];
return ;
}else {
if(a[r-1] == 0 && r>=1){
a[r-1] = a[r]+1;
q.push(r-1);
}if(a[r+1] == 0 && (r+1)<=100000){
a[r+1] = a[r]+1;
q.push(r+1);
}if(a[2r] == 0 && (2r)<=100000){
a[r2] = a[r]+1;
q.push(r2);
}
}
}
}
int main() {
cin>>n>>k;
bfs(n);
return 0;
}
这里空空如也
有帮助,赞一个