社区讨论

5555555555555 Q^Q +1关

P1135奇怪的电梯参与者 3已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@lo2htnr3
此快照首次捕获于
2023/10/23 14:04
2 年前
此快照最后确认于
2023/10/23 14:04
2 年前
查看原帖
C
#include <bits/stdc++.h>
using namespace std;
queue<int>q;
bool v[400002];
int o[8424624]; 
int step[400002];
int main(){
	int m,n,k;
	cin>>m>>n>>k;
	q.push(n);
	v[n]=1;
	step[n]=1;
	for(int i=1;i<=m;i++){
		cin>>o[i];
	}
	if(n==k){
		cout<<"0";
	} 
	int l=1;
	while(!q.empty()){
		l++;	
		int h=q.front();
		//cout<<h<<" "<<step[h]<<endl;
		if(h==k) break;
		q.pop();
		if(v[h+o[l]]==0 && h+o[l]<=m){
			q.push(h+o[l]);
			v[h+o[l]]=1;
			step[h+o[l]]=step[h]+1;
		}
		if(v[h-o[l]]=0 && h-o[l]>=0){
			q.push(h-o[l]);
			v[h-o[l]]=1;
			step[h-o[l]]=step[h]+1;
		}
	}
	//for(int i=1;i<=1000;i++){
	//	cout<<step[i]<<" ";	
	//}
	if(step[k]==0){
		cout<<"-1";
		return 0;
	}
	cout<<step[k];
	return 0;	
}

回复

5 条回复,欢迎继续交流。

正在加载回复...