跪求dalao帮看代码(五个点A,其他MLE)

P1135 奇怪的电梯

看不懂Pascal 不好意思 不过您可以参考下我的代码 方法和您一样 都是dfs 不过有剪枝 ```cpp #include<bits/stdc++.h> using namespace std; int n,a,b,k[205],min_times=100000000; bool use[205]; void dfs(int now,int times) { if(times>=min_times) return; if(now==b) { min_times=min(min_times,times); return; } use[now]=true; if(now+k[now]<=n&&!use[now+k[now]]) dfs(now+k[now],times+1); if(now-k[now]>=1&&!use[now-k[now]]) dfs(now-k[now],times+1); use[now]=false; } int main() { memset(use,false,sizeof(use)); cin>>n>>a>>b; for(int i=1;i<=n;i++) cin>>k[i]; dfs(a,0); if(min_times==100000000) cout<<"-1"<<endl; else cout<<min_times<<endl; return 0; } ```
by Patrickpwq @ 2018-05-20 00:19:26


``` 2 1 2 1 1 ``` 会爆栈的
by hehezhou @ 2018-05-20 06:26:33


@[Patrickpwq](/space/show?uid=60299) 蟹蟹,我看得懂c++,您的dfs比我强多了,我的只是个递归而已QAQ
by Kujolord @ 2018-05-20 09:11:43


@[zhr596082417](/space/show?uid=67371) 蟹蟹提供翻车数据
by Kujolord @ 2018-05-20 09:12:13


|