MLE求助!!!
查看原帖
MLE求助!!!
705058
BGM114514楼主2023/9/21 21:39

怎么会这样啊。。。

#include<bits/stdc++.h>
using namespace std;
int rmb[205],n,a,b,m[205];
int dfs(int i,int t){
	if(i==b)return t;
	if(rmb[i])return rmb[i];
	int ans=0x3f3f3f3f,x;
	if(i-m[i]>=1){
		x=i-m[i];
		if(rmb[x]==0){
			rmb[x]=dfs(x,t+1);
		}
		ans=min(ans,rmb[x]);
	}else if(i+m[i]<=n){
		x=i+m[i];
		if(rmb[x]==0){
			rmb[x]=dfs(x,t+1);
		}
		ans=min(ans,rmb[x]);
	}
	return ans;
}
int main(){
	scanf("%d%d%d",&n,&a,&b);
	for(int i=1;i<=n;i++)scanf("%d",&m[i]);
	printf("%d\n",dfs(a,0));
	return 0;
}

MLE了

2023/9/21 21:39
加载中...