dfs WA#8#9 求助
查看原帖
dfs WA#8#9 求助
811948
zyz123789楼主2022/10/18 14:25

代码:

#include<bits/stdc++.h>
using namespace std;
const int N=2e2+5;
inline int read()
{
	int s=0,w=1;char ch=getchar();
	while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
	while(ch>='0'&&ch<='9'){s=s*10+ch-'0';ch=getchar();}
	return s*w;
}
int n,i,b,sum,ans=0x7fffffff;
int a[N];bool vis [N];
inline void input(){n=read(),i=read(),b=read();for(int i=1;i<=n;i++) a[i]=read();}
inline void output(){if(ans!=0x7fffffff) printf("%d",ans);else printf("-1");return ;}
inline void dfs(int i,int sum)
{
	vis[i]=true;
	if(i==b)
	{
		ans=sum;
		return ;
	}
	if(sum>=ans) return ;
	if(i+a[i]<=n&&!vis[i+a[i]])
	{
		dfs(i+a[i],sum+1);
	}
	if(i-a[i]>=1&&!vis[i-a[i]])
	{
		dfs(i-a[i],sum+1);
	}
	vis[i]=false;sum--;
}
int main()
{
	input();
	dfs(i,sum);
	output();
	return 0;
}

救命!qwq

题外话:验证码AC33祭

2022/10/18 14:25
加载中...