代码如下
#include<bits/stdc++.h>
using namespace std;
int n,a,b,ans=0x7ffffff,x[201];
bool x1[201];
void dfs(int now,int sum)
{
if(now==b)ans=min(ans,sum);
if(sum>ans)return;
x1[now]=1;
if(now+x[now]<=n&&!x1[now+x[now]]) dfs(now+x[now],sum+1);
if(now-x[now]>=1&&!x1[now-x[now]]) dfs(now-x[now],sum+1);
x1[now]=0;
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
freopen("1.txt","r",stdin);
cin>>n>>a>>b;
for(int i=1;i<=n;i++)
{
cin>>x[i];
}
x1[a]=1;
dfs(a,0);
if(ans!=0x7ffffff)cout<<ans;
else cout<<"-1";
return 0;
}
1.参考了题解,我看ans的值都是0x7ffffff,不知道为什么。
2.为什么x1[a]=1; 要设置,不设置也可以AC,不明白。