求助!#7MLE 8 10TLE!
查看原帖
求助!#7MLE 8 10TLE!
472945
武怡雯_楼主2021/9/9 19:10
#include<cstdio>
#include<algorithm>
using namespace std;

int n , a , b , k[5000] , ans = 0x7fffff;
bool v[5000];

void dfs(int x , int sum)
{
	if(sum >= ans) return;
	if(x == b) {
		ans = min(ans , sum); 
		return;
	}
	v[x] = true;
	if(x + k[x] <= n && !v[x + k[x]]) 
	    dfs(x + k[x] , sum + 1);
	if(x - k[x] >= 1 && !v[x + k[x]]) 
	    dfs(x - k[x] , sum + 1);
	v[x] = false;
}

int main()
{
	scanf("%d%d%d" , &n , &a , &b);
	v[a] = true;
	for(int i = 1; i <= n; ++i) {
		scanf("%d" , &k[i]);
	}
	dfs(a , 0);
	if(ans != 0x7fffff) printf("%d" , ans);
	else printf("-1");
	return 0;
}
2021/9/9 19:10
加载中...