社区讨论
BFS40分 蒟蒻求大佬帮助
P1135奇怪的电梯参与者 2已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @lo7qv07v
- 此快照首次捕获于
- 2023/10/27 06:16 2 年前
- 此快照最后确认于
- 2023/10/27 06:16 2 年前
BFS40分 希望有大佬帮助我这个小蒟蒻
CPP#include<bits/stdc++.h>
using namespace std;
int n,a,b,k[209];
struct node{
int dat;
int dep;
};
node data[40009],tmp;
const int up[3]={0,1,-1};
int head=0,tail=1,r;
int check(int w){
if(data[head].dat+up[r]*k[data[head].dat]<=n&&data[head].dat+up[r]*k[data[head].dat]>=0)
return 1;
return 0;
}
int dupl(){
for(int j=tail-1;j>0;j--)
{
if(data[tail].dat==data[j].dat)return 1;
}
return 0;
}
int goal(){
if(data[head].dat==b)return 1;
return 0;
}
int main(){
cin>>n>>a>>b;
for(int i=1;i<=n;i++)
cin>>k[i];
data[1].dat=a;
data[1].dep=0;
while(head<tail){
head++;
for(r=1;r<=2;r++){
if(check(r)){
tail++;
tmp.dat=data[head].dat;
tmp.dat+=up[r]*k[data[head].dat];
tmp.dep=data[head].dep+1;
data[tail]=tmp;
if(dupl())tail--;
else if(goal()){cout<<data[tail].dep-1;return 0;}
}
}
}
cout<<-1;
return 0;
}
回复
共 3 条回复,欢迎继续交流。
正在加载回复...