为何bfs无法ac
查看原帖
为何bfs无法ac
889498
Bei_Gua_楼主2023/3/18 22:22

求助!

using namespace std;
int n,a,b;
int k[250];
int q[3][1000],f,r;
int flag[210]={0};
int pos[3]={1,-1};
int v=0;
bool lo=true;
void print(int r){
	int i=r;
	while (i!=1){
		v++;
		i=q[2][i];
	}
	cout<<v;
}
void ks(){
	q[1][1]=a;
	q[2][1]=0;
	f=1;
	r=1;
	if (a==b){
		lo=false;
		cout<<0;
		return;
	}
	while(r>=f){
		int x=q[1][f];
		for (int i=0;i<=1;i++){
			int x1=x+k[x]*pos[i];
			if (x1>0 && flag[x1] == 0){
				r++;
				q[1][r]=x1;
				q[2][r]=f;
				flag[x1]=-1;
			}
			if (x1==b){
				print(r);
				lo=false;
			}
		}
		f++;
	}
}
int main(){
	cin>>n>>a>>b;
	for (int i=1;i<=n;i++){
		cin>>k[i];
	}
	ks();
	if (lo)cout<<-1;
}

#4 6 7 9 10 11WA了 求助plz!!!

2023/3/18 22:22
加载中...