社区讨论
20分求助,这个深搜为什么会进入死循环MLE
P1135奇怪的电梯参与者 5已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @locabi94
- 此快照首次捕获于
- 2023/10/30 10:32 2 年前
- 此快照最后确认于
- 2023/11/04 22:20 2 年前
CPP
#include<bits/stdc++.h>
using namespace std;
int a,b,n,k[201];
int minRes =2147483647;
void dfs(int x,int ans){
if(x==b){
minRes=min(minRes,ans);
return;
}
if(x-k[x]<=0&&x+k[x]>n){;
return;
}
if(x-k[x]<=0&&x+k[x]<=n){
dfs(x+k[x],ans+1);
return;//只能网上
}
if(x-k[x]>=1&&x+k[x]>n){
dfs(x-k[x],ans+1);
return;//只能往下
}
dfs(x+k[x],ans+1);
dfs(x-k[x],ans+1);
}
int main(){
cin>>n>>a>>b;
for(int i=1;i<=n;i++){
cin>>k[i];
}
dfs(a,0);
if(minRes==2147483647)cout<<-1<<endl;
else cout<<minRes;
return 0;
}
回复
共 5 条回复,欢迎继续交流。
正在加载回复...