洛谷P1135 奇怪的电梯——广搜

简介: 洛谷P1135 奇怪的电梯——广搜

题目描述

呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯。大楼的每一层楼都可以停电梯,而且第 i 层楼(1≤i≤N)上有一个数字 Ki(0≤Ki≤N)。电梯只有四个按钮:开,关,上,下。上下的层数等于当前楼层上的那个数字。当然,如果不能满足要求,相应的按钮就会失灵。例如: 3, 3, 1, 2, 5 代表了Ki(K1=3,K2=3,……),从 1 楼开始。在 1 楼,按“上”可以到 4 楼,按“下”是不起作用的,因为没有 −2 楼。那么,从 A 楼到 B 楼至少要按几次按钮呢?


输入格式

共二行。

第一行为三个用空格隔开的正整数,表示 N, A, B(1≤N≤200,1≤A,B≤N)。

第二行为 N 个用空格隔开的非负整数,表示 Ki。


输出格式

一行,即最少按键次数,若无法到达,则输出 -1

输入输出样例

输入

5 1 5

3 3 1 2 5


输出

3


说明/提示

对于 100% 的数据,1≤N≤200,1≤A,B≤N,0≤Ki≤N。

#include<bits/stdc++.h>
using namespace std;
int n,a,b,e[210],vis[210];
int main()
{
  cin>>n>>a>>b;
  for(int i=1;i<=n;i++)
  {
    cin>>e[i];
  }
  queue<int>f;
  queue<int>s;
  f.push(a);
  s.push(0);
  vis[a]=1;
  while(!s.empty())
  {
    if(f.front()==b)
    {
      cout<<s.front()<<endl;
      return 0;
    }
    int t=f.front()+e[f.front()];//上升楼层 
    if(t<=n&&vis[t]==0)
    {
      f.push(t);
      s.push(s.front()+1);
      vis[t]=1;
    }
    t=f.front()-e[f.front()];//下降楼层 
    if(t>=1&&vis[t]==0)
    {
      f.push(t);
      s.push(s.front()+1);
      vis[t]=1;
    }
    f.pop();
    s.pop();
  }
  cout<<-1<<endl;
  return 0;
}
目录
相关文章
|
7月前
|
机器学习/深度学习 Java Python
代码解密 | 2024春晚刘谦魔术与约瑟夫环问题
2024春节联欢晚会中,刘谦老师的魔术节目可以说是我心目中的全场最佳~春晚刚结束网上就有大佬给出了第二个魔术(拼扑克牌)的数学模拟,也有大佬发布了代码程序。博主在模拟了魔术过程之后,也在此分享一下程序代码和思路。同时,也借此回顾一下经典的数学问题:约瑟夫环问题。
118 8
|
6月前
|
存储 物联网
【洛谷 P1135】奇怪的电梯 题解(广度优先搜索)
这是一个关于奇怪电梯的编程问题摘要: - 电梯在每层停,且每层有特定数字 $K_i$ 决定上/下按钮的功能。 - 目标是从 $A$ 楼到 $B$ 楼,求最少按键次数,若无法到达则输出 `-1`。 - 输入包括 $N$(楼层数)、$A$(起点)和 $B$(终点),以及每层的 $K_i$ 数字。 - 使用广度优先搜索(BFS)解决,通过队列存储访问过的楼层,避免重复并计算步数。 - 当到达目标楼层时返回步数,队列空时返回 `-1`。
54 0
|
7月前
【错题集-编程题】过河卒(动态规划-路径问题)
【错题集-编程题】过河卒(动态规划-路径问题)
|
7月前
|
容器
每日一题——接雨水(单调栈)
每日一题——接雨水(单调栈)
|
7月前
代码随想录Day29 贪心04 LeetCode T860 柠檬水找零 T406 根据身高重建队列 T452 用最少得箭引爆气球
代码随想录Day29 贪心04 LeetCode T860 柠檬水找零 T406 根据身高重建队列 T452 用最少得箭引爆气球
44 0
|
7月前
|
存储
每日一题——地下迷宫(迷宫问题II)
每日一题——地下迷宫(迷宫问题II)
|
7月前
|
算法
【力扣热题100】287. 寻找重复数(弗洛伊德的乌龟和兔子方法)
【力扣热题100】287. 寻找重复数(弗洛伊德的乌龟和兔子方法)
70 0
【洛谷算法题】B2029-大象喝水【入门1顺序结构】
【洛谷算法题】B2029-大象喝水【入门1顺序结构】
|
机器学习/深度学习
大臣的旅费-动规/深搜
大臣的旅费-动规/深搜
82 0