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;
}