求助12分剩下都是MLE,成了死循环了
查看原帖
求助12分剩下都是MLE,成了死循环了
1340313
mowanggao楼主2024/5/14 21:59
#include<iostream>
#include<algorithm>
using namespace std;
const int maxn=210;
int n,s,t,a[maxn],mmin=1e5;
bool flag=false;
void DFS(int now,int step){
	if(now==t){
	   flag=true;
	   if(step<mmin){
	    	mmin=step;
    	}
    	return;
	}
	if(now+a[now]<=n){
	DFS(now+a[now],step+1);//上		
	}
	if((now-a[now])>=1){
	DFS(now-a[now],step+1);//下 
	}
}
int main(){
cin>>n>>s>>t;
for(int i=1;i<=n;i++){
	cin>>a[i];
}
DFS(s,0);
if(flag){
printf("%d",mmin);	
}
else{
	printf("-1");
}
return 0;
}

2024/5/14 21:59
加载中...