bfs36分求助大佬!!!
查看原帖
bfs36分求助大佬!!!
1249789
FEITJSW楼主2024/3/28 22:31

错误点: #1 #2 #3 #4 #5 #11 #12 #14 #15 #16

#include <iostream>
using namespace std;
int a[210],N,A,B,K[210],up,down;
void init(){
	cin >> N >> A >> B;
	for (int i = 1;i <= N;i ++){
		a[i] = -1;
	}
	for (int i = 1;i <= N;i ++){
		cin >> K[i];
	}
}
void bfs(){
	int head=0,tail=1,q[210]={0};
	a[A] = 0;
	q[1] = 1; 
	while (head < tail){
		head ++;
		up = q[head] + K[q[head]];
		down = q[head] - K[q[head]];
		if (up >= 1 && a[up] == -1){
			a[up] = head;
			tail ++;
			q[tail] = up;
		}
		if (down >= 1 && a[down] == -1){
			a[down] = head;
			tail ++;
			q[tail] = down;
		}
	}
}
void print(){
	cout << a[B];
}
int main(){
	init();
	bfs();
	print();
	return 0;
}

谢谢!!!(嘶吼

2024/3/28 22:31
加载中...