社区讨论
100分1TLE
P1135奇怪的电梯参与者 4已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @lo3cieuc
- 此快照首次捕获于
- 2023/10/24 04:23 2 年前
- 此快照最后确认于
- 2023/10/24 04:23 2 年前
CPP
# include <iostream>
# include <cmath>
# include <cstring>
# include <string>
# include <algorithm>
using namespace std;
int n,a,b,ans=2147483647;
int k[10005];
bool vis[10005];
void dfs (int dep,int cnt){
if (dep==b) {
if (ans<0||ans>cnt) ans=cnt;
return ;
}
if (ans>0&&cnt>ans) return ;
vis[dep]=1;
if (dep+k[dep]<=n&&!vis[dep+k[dep]]) dfs (dep+k[dep],cnt+1);
if (dep-k[dep]>0&&!vis[dep-k[dep]]) dfs (dep-k[dep],cnt+1);
vis[dep]=0;
return ;
}
int main (){
ios::sync_with_stdio (false);
cin.tie(NULL);
cout.tie(NULL);
cin >>n>>a>>b;
for (int i=1;i<=n;i++)
cin >>k[i];
vis[a]=1;
dfs (a,0);
if (ans==2147483647) cout <<-1<<endl;
else cout <<ans<<endl;
return 0;
}
回复
共 4 条回复,欢迎继续交流。
正在加载回复...