P1135 TLE求调
  • 板块灌水区
  • 楼主Little_Green
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/9/21 16:15
  • 上次更新2024/9/21 17:08:51
查看原帖
P1135 TLE求调
1407148
Little_Green楼主2024/9/21 16:15

刚学bfs

#include <bits/stdc++.h>
#define N 205
using namespace std;
int l[N][N], k[N];
int n, a, b;
struct node{
	int val, step;
};
int v[N];
queue<node> q;
int bfs(){
	if(a==b){
		return 0;
	}
	v[a]=1;
	while(!q.empty()){
		node x=q.front();
		for(int i=1;i<=n;i++){
			if(l[x.val][i]){
				q.push({i, x.step+1});
				v[i]=1;
				if(i==b){
					return x.step+1;
				}
			}
		}
		q.pop();
	}
	return -1;
}
int main(){
	cin>>n>>a>>b;
	for(int i=1;i<=n;i++){
		cin>>k[i];
		if(i+k[i]<=n) l[i][i+k[i]]=1;
		if(i-k[i]>0) l[i][i-k[i]]=1;
	}
	q.push({a, 0});
	cout<<bfs();
	return 0;
}
2024/9/21 16:15
加载中...