P1135奇怪的电梯--------蒟蒻的深搜入门

P1135奇怪的电梯--------蒟蒻的深搜入门

输入:

5 1 5

3 3 1 2 5

输出:

3

蒟蒻终于能写出一道题了~~~~~

#include<iostream>
using namespace std;
int n,a,b;
int num[205],ans=20001;
int pd[1001];
void dfs(int q,int ma){
	if(q==b){
		ans=min(ans,ma);
		return ;
	}
	if(q>n||q<0||ma>ans) return ; //之前少加了最后的剪枝wa了最后两个点 呜呜~
	if(!pd[q]){
	 		pd[q]=1;
	 	    dfs(q+num[q],ma+1);
	 	    dfs(q-num[q],ma+1);
	 		pd[q]=0;
		 }
} 
int main()
{
	cin>>n>>a>>b;
	for(int i=1;i<=n;i++){
		 cin>>num[i];
	} 
	 
	 dfs(a,0);
	 
	 if(ans==20001)
	  cout<<"-1"<<endl;
	 else 
	  cout<<ans<<endl;
	  return 0;
}