首页 > 其他 > 详细

1360:奇怪的电梯(lift)

时间:2020-09-30 09:28:30      阅读:70      评论:0      收藏:0      [点我收藏+]

http://ybt.ssoier.cn:8088/problem_show.php?pid=1360

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int n, a, b;
 4 int k[205];
 5 bool vis[205];
 6 struct node{
 7     int x, s;
 8 };
 9 node que[205];
10 int f, r;
11 int ans=-1;
12 void lift(int nx, int fs){
13     if(nx>=1 && nx<=n && vis[nx]==0){//判断是否满足入队条件 
14         vis[nx]=1;//更改状态,防止重复访问 
15         r++;//队列后移准备入队 
16         que[r].x=nx;//入队 
17         que[r].s=fs+1;
18     }
19 }
20 int main()
21 {
22     cin>>n>>a>>b;
23     for(int i=1; i<=n; i++)cin>>k[i];
24     f=r=1;//队列初始化 
25     que[r].x=a;  que[r].s=0;//初始楼层入队 
26 
27     while(f<=r){
28         int fx=que[f].x;//获取队首信息 
29         int fs=que[f].s;
30         if(fx==b){
31             ans=fs;
32             break;
33         }
34         lift(fx+k[fx], fs);//电梯向上 
35         lift(fx-k[fx], fs);//电梯向下 
36         f++;//队首信息出队 
37     }
38     cout<<ans;
39     return 0;
40  } 

 

1360:奇怪的电梯(lift)

原文:https://www.cnblogs.com/tflsnoi/p/13752873.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!