大佬,请求助!
查看原帖
大佬,请求助!
873905
York1121楼主2024/6/24 21:13

我用简单的BFS写了一遍,样例过了,却只有30分

#include <bits/stdc++.h>
#define ll long long
using namespace std;
int n,c,b;
int a[10086];
struct node
{
	int fl,ans;
};
queue<node>q;
int main()
{
	cin>>n>>c>>b;
	for(int i=1;i<=n;i++)
		cin>>a[i];
	q.push((node){c,0});
	while(!q.empty())
	{
		node f=q.front();
		q.pop();
		if(f.fl==b)
		{
			cout<<f.ans;
			return 0;
		}
		for(int i=1;i<=1;i++)
		{
			if(f.fl+a[f.fl]>n)
				break;
			q.push((node){f.fl+a[f.fl],f.ans+1});		
		}
		for(int i=1;i<=1;i++)
		{
			if(f.fl-a[f.fl]<1)
				break;
			q.push((node{f.fla[f.fl],f.ans+1});
		}
	}
	cout<<-1;
 	return 0;
}

2024/6/24 21:13
加载中...