社区讨论

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 条回复,欢迎继续交流。

正在加载回复...