一些数值不明白
查看原帖
一些数值不明白
327346
xiaoyu20070727楼主2020/7/20 19:45

代码如下

#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,不明白。

2020/7/20 19:45
加载中...