炸裂。上来就炸了。
查看原帖
炸裂。上来就炸了。
955954
Miracle_InDream楼主2023/12/18 23:31
#include<bits/stdc++.h>
using namespace std;
int n,a,b;
int k[205];
struct node
{
	int h;
	int step;
};
node s,t;
int vis[205];
bool flag=0;
queue<node> q;
void bfs()
{
	s.step=0;
	vis[s.h]=1;
	q.push(s);
	while(!q.empty());
	{
		node tmp=q.front();
		if(tmp.h==t.h)
		{
			cout<<tmp.step;
			flag=1;
			return;
		}
		if(tmp.h+k[tmp.h]<=n&&!vis[tmp.h+k[tmp.h]])
		{
			node a;
			a.h=tmp.h+k[tmp.h];
			a.step=tmp.step+1;
			q.push(a);
			vis[a.h]=1;
		}
		if(tmp.h-k[tmp.h]>0&&!vis[tmp.h-k[tmp.h]])
		{
			node a;
			a.h=tmp.h-k[tmp.h];
			a.step=tmp.step+1;
			q.push(a);
			vis[a.h]=1;
		}
	}
}
int main()
{
	cin>>n>>a>>b;
	s.h=a;
	t.h=b;
	for(int i=1;i<=n;i++)
	{
		cin>>k[i];
	}
	bfs();
	if(flag==0)
	{
		cout<<-1;
	}
	return 0;
}
2023/12/18 23:31
加载中...