为什么AC君的题解能对我的却是错的
2026-07-29 18:56:19
发布于:浙江
8阅读
0回复
0点赞
为什么AC君的题解能对我的却是错的?
有什么问题吗?
恳请回复
我的代码:
#include <bits/stdc++.h>
using namespace std;
const int mx = 10001;
int n,x,y,a[mx],cnt = mx;
bool vis[mx],flag;
struct NODE{
int x2,s;
};
void bfs(){
int nx1,nx2;
queue<NODE>q;
q.push({x,0});
while(q.size()){
NODE r = q.front();
q.pop();
int cp = r.x2,cs = r.s;
if (cp == y){
cnt = min(cnt,cs);
return;
}
nx1 = cp + a[cp];
nx2 = cp - a[cp];
if (nx1 >= 1 && nx1 <= n && !vis[nx1]){
q.push({nx1,cs + 1});
vis[nx2] = true;
}
if (nx2 >= 1 && nx2 <= n && !vis[nx2]){
q.push({nx2,cs + 1});
vis[nx2] = true;
}
}
return;
}
int main(){
cin >> n >> x >> y;
for (int i = 1;i <= n;i++){
cin >> a[i];
}
bfs();
if (cnt == mx) cout << "-1";
else cout << cnt;
return 0;
}
这里空空如也






有帮助,赞一个