求助帖
查看原帖
求助帖
1011621
huxinyugeigei楼主2024/10/4 17:59

我的程序错哪儿了呀? 源代码

#include<bits/stdc++.h>
using namespace std;
int aa[2010];
bool visit[5000];
int n,a,b;
int aaaa,bbbb,cccc=0;
void bfs(int a,int b,int sum)
{
	if(a==b)
	{
		cccc=1;
		cout<<sum<<endl;
		return ;
	}
	if(a+aa[a]<=n&&visit[a+aa[a]]==0)
	{
		aaaa=1;
		visit[a+aa[a]]=1;
		bfs(a+aa[a],b,sum+1);
	}
	if(a-aa[a]>0&&visit[a-aa[a]]==0)
	{
		bbbb=1;
		visit[a-aa[a]]=1;
		bfs(a-aa[a],b,sum+1);
	}
	if((visit[a+aa[a]]==0&&visit[a-aa[a]]==0)&&cccc!=1)
	{
		cout<<"-1"<<endl;
		return;
	}
	return;
}
int main()
{
	cin>>n>>a>>b;
	for(int i=1;i<=n;i++)
		cin>>aa[i];
	visit[a]=1;
	bfs(a,b,0);
	return 0;
}

分数是40分

分数图

2024/10/4 17:59
加载中...