80分求助,赏一关
  • 板块灌水区
  • 楼主buerbute
  • 当前回复8
  • 已保存回复8
  • 发布时间2023/9/10 15:19
  • 上次更新2023/11/2 21:38:09
查看原帖
80分求助,赏一关
952041
buerbute楼主2023/9/10 15:19

题目传送门

include<bits/stdc++.h>
using namespace std;
int n,a,b,ans;
int num[201];
bool jock[201];
int dfs(int x,int sum){
	if(x==b){
		if(ans==-1){
			ans=sum;
		}else{
			ans=min(ans,sum);
		}
	}
	else{
		int k=sum+1;
		jock[x]=1;
		int u=0;
		if(x-num[x]>=1&&!jock[x-num[x]]){
			dfs(x-num[x],k);
			u=1;
		}
		if(x+num[x]<=n&&!jock[x+num[x]]){
			dfs(x+num[x],k);
			u=1;
		}
		if(!u)return 0;
		jock[x]=0;
	}
}
int main(){
	cin>>n>>a>>b;
	memset(jock,0,sizeof(jock));
	ans=-1;
	for(int i=1;i<=n;i++){
		cin>>num[i];
	}
	dfs(a,0);
	cout<<ans;
}
2023/9/10 15:19
加载中...