dalao们帮忙瞅瞅,WA最后一个,卡90分动不了
  • 板块学术版
  • 楼主孤i
  • 当前回复3
  • 已保存回复3
  • 发布时间2020/8/16 19:26
  • 上次更新2023/11/6 20:06:33
查看原帖
dalao们帮忙瞅瞅,WA最后一个,卡90分动不了
219551
孤i楼主2020/8/16 19:26
#include<bits/stdc++.h>
#define ll long long
#define pb(x) push_back(x)
#define mp(a,b) make_pair(a,b)
#define fi first
#define se second
#define pr(x) cerr<<#x<<"="<<(x)<<endl
#define pri(x,lo) {cerr<<#x<<"={";for (int ol=0;ol<=lo;ol++)cerr<<x[ol]<<",";cerr<<"}"<<endl;}
#define inf 100000000

using namespace std;
int bfs[201],head=0,tail=0;
int ans[10001];
int main()
{
	int N,A,B;
	cin>>N>>A>>B;
	int m[N];
	for(int i=1;i<=N;i++){
		cin>>m[i];
	}
	bfs[++tail]=A;
	ans[A]=0;
	bool b[201];
	while(head!=tail){
		int a=bfs[++head];
		int x=m[a];
		if(a==B){
			cout<<ans[B];
			return 0;
		}
		if(a-x>0&&!b[a-x]){
			b[a-x]=true;
			bfs[++tail]=a-x;
			ans[a-x]=ans[a]+1;
		}
		if(a+x<=200&&!b[a+x]){
			b[a+x]=true;
			bfs[++tail]=a+x;
			ans[a+x]=ans[a]+1;
		}
	}
	cout<<-1;
 	return 0;
}
2020/8/16 19:26
加载中...