AC WA TLE MLE 大彩虹!大佬救救我
查看原帖
AC WA TLE MLE 大彩虹!大佬救救我
1401294
XCJHYJ楼主2024/8/15 14:07
#include<bits/stdc++.h>
using namespace std;
int n,a,b,k[300],maxn=1e9,bz[300];
void dfs(int x,int s){
	if(s>maxn) return;
	if(x==b){
		if(s<maxn)
			maxn=s;
		return;
	}
	if(x+k[x]>=0 && x+k[x]<=n && bz[x+k[x]]==0){
		bz[x]=1;
		dfs(x+k[x],s+1);
		bz[x]=0;
	}
	if(x-k[x]>=0 && x-k[x]<=n && bz[x+k[x]]==0){
		bz[x]=1;
		dfs(x-k[x],s+1);
		bz[x]=0;
	}
}
int main(){
	scanf("%d%d%d",&n,&a,&b);
	for(int i=1; i<=n; i++)
		scanf("%d",&k[i]);
	dfs(a,0);
	if(maxn!=100)
		printf("%d",maxn);
	else
		printf("-1");
	return 0;
}

我用的dfs

2024/8/15 14:07
加载中...