为何64分?(各位大佬帮忙看看)
查看原帖
为何64分?(各位大佬帮忙看看)
1045442
_L_Z_Y_楼主2024/9/26 13:52
#include<bits/stdc++.h>
using namespace std;
long long a1[205],b1[205],a,b,n,minn=INT_MAX;
void dfs(long long k,long long summ)
{
	if(summ>minn)
	{
		return;
	}
	if(k==b)
	{
		minn=min(summ,minn);
		return;
	}
	if(k+a1[k]<=n&&b1[k+a1[k]]==0)
	{
		b1[k+a1[k]]=1;
		dfs(k+a1[k],summ+1);
		b1[k+a1[k]]=0;
	}
	if(k-a1[k]>=1&&b1[k-a1[k]]==0)
	{
		b1[k-a1[k]]=1;
		dfs(k-a1[k],summ+1);
		b1[k-a1[k]]=0;
	}
}
int main(){
	cin>>n>>a>>b;
	for(int i=1;i<=n;i++)cin>>a1[i];
	b1[a]=1;
	dfs(a,0);
	b1[a]=0;
	if(minn==INT_MAX)cout<<"-1";
	else cout<<minn;
	return 0;
}
2024/9/26 13:52
加载中...