C++BFS80分,蒟蒻求助
查看原帖
C++BFS80分,蒟蒻求助
734248
Akagi2017楼主2022/8/17 13:22

80分代码:(#8#9没过)

#include <bits/stdc++.h>
using namespace std;
int c[201];
int q[1000001];
bool h[201];
int main(){
    int n,a,b;
    cin>>n>>a>>b;
    for(int i=1;i<=n;i++) cin>>c[i];
    int first=0,rear=0,sum=0;
    q[0]=a;
    while(first<=rear){
        if(q[first]==b){
            cout<<sum;
            return 0;
        }
        else{
            h[q[first]]=true;
            sum++;
            if(q[first]+c[q[first]]<=n&&!h[q[first]+c[q[first]]]){
                rear++;
                q[rear]=q[first]+c[q[first]];
            }
            else if(q[first]-c[q[first]]>=1&&!h[q[first]-c[q[first]]]){
                rear++;
                q[rear]=q[first]-c[q[first]];
            }
            first++;
        }
    }
    cout<<-1;
    return 0;
}
2022/8/17 13:22
加载中...