bfs?dfs才是神!
2024-01-15 17:06:45
发布于:北京
10阅读
0回复
0点赞
本着能就绝不的原则,我打出了如下代码:
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
const int MAXN=2e2+22;
int n,x,y;
int k[MAXN],go[MAXN];
void dfs(int p,int t){
if(p<1||p>n) return;
if(go[p]==-1) go[p]=t;
else{
if(go[p]<t) return;
go[p]=t;
}
dfs(p+k[p],t+1);
dfs(p-k[p],t+1);
return;
}
int main(){
memset(go,-1,sizeof(go));
cin>>n>>x>>y;
for(int i=1;i<=n;i++) cin>>k[i];
dfs(x,0);
cout<<go[y];
return 0;
}
这里空空如也
有帮助,赞一个