P1135求调
  • 板块灌水区
  • 楼主如履薄冰
  • 当前回复2
  • 已保存回复2
  • 发布时间2025/1/4 19:48
  • 上次更新2025/1/4 22:37:41
查看原帖
P1135求调
1327843
如履薄冰楼主2025/1/4 19:48

AC+WA+RE 70pts

灌水区更多人看才在这里发

#include<bits/stdc++.h>
using namespace std;
int n,a,b,A[1100000];
bool vis[1100000];
struct st{
    int point,step;
};
int bfs(){
    queue<st> q;
    q.push({a,0});
    vis[a]=1;
    while(!q.empty()){
        st curp=q.front();
        q.pop();
        int upp=curp.point+A[curp.point],dnp=curp.point-A[curp.point];
        int ups=curp.step+1,dns=curp.step+1;
        if(upp==b){
            cout<<ups;
            return 0;
        }
        if(dnp==b){
            cout<<dns;
            return 0;
        }
        if(upp<=n&&upp>=1&&vis[upp]==0){
        	vis[upp]=1;
            q.push({upp,ups});
        }
        if(dnp<=n&&dnp>=1&&vis[dnp]==0){
        	vis[dnp]=1;
            q.push({dnp,dns});
        }
    }
}
int main(){
    cin>>n>>a>>b;
    for(int i=1;i<=n;i++)
        cin>>A[i];
    bfs();
    return 0;
}
2025/1/4 19:48
加载中...