题目描述

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

思路

直接 BFS ,具体看注释。

#include <iostream>
#include <queue>
using namespace std;
int spoint, fpoint, lift[100001], n, ud[3] = { 0, 1, -1 }, click;
int isper[100001];
queue<int> route;
int BfsLift() {int want;if (spoint == fpoint)return 0;route.push(spoint);isper[spoint] = 0;while (!route.empty()) {for (int i = 1; i <= 2; i++) {want = ud[i] * lift[route.front()] + route.front();//将要到的电梯楼层if (want >= 1 && want <= n && isper[want] == 0) {//没有出电梯楼层&&当前楼层最优解isper[want] = isper[route.front()] + 1;//按下一次电梯route.push(want);//进入队尾}if (want == fpoint)//有解return isper[want];}route.pop();}return -1;
}
int main() {cin >> n >> spoint >> fpoint;for (int i = 1; i <= n; i++) cin >> lift[i];cout << BfsLift();
}

注意事项:不要用单独的量来统计,否则无法达到最优解。

青藤 #10064 奇怪的电梯相关推荐

  1. P1135 奇怪的电梯(BFS/DFS)

    来源:https://www.luogu.org/problemnew/show/P1135 题目描述 有一天我做了一个梦,梦见了一种很奇怪的电梯.大楼的每一层楼都可以停电梯,而且第i层楼(1≤i≤N ...

  2. 1360:奇怪的电梯(lift) 《信息学奥赛一本通》

    http://ybt.ssoier.cn:8088/problem_show.php?pid=1360 /* 1360:奇怪的电梯(lift)--AC http://ybt.ssoier.cn:808 ...

  3. 奇怪的电梯(洛谷-P1135)

    题目描述 呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯.大楼的每一层楼都可以停电梯,而且第 i 层楼 (1≤i≤N) 上有一个数字 Ki​(0≤Ki​≤N) .电梯只有四个按钮:开,关,上,下.上 ...

  4. 广度优先搜索——奇怪的电梯(洛谷 P1135)

    广度优先搜索普及/提高篇,今天讲述的是洛谷里的一道题 奇怪的电梯(洛谷 P1135) 说一下我解题时候的思路吧. 首先读清楚题目,题目要求输出从 a楼 到 b楼的最少次数,楼层必须在[1,n]之间升降 ...

  5. 一本通1360:奇怪的电梯(lift)

    1360:奇怪的电梯(lift) 大楼的每一层楼都可以停电梯,而且第i层楼(1≤i≤N)(1≤i≤N)上有一个数字Ki(0≤=Ki≤=N)Ki(0≤=Ki≤=N).电梯只有四个按钮:开,关,上,下.上 ...

  6. P1135 奇怪的电梯题解

    P1135 奇怪的电梯题解 题目 链接 字面描述 代码实现 题目 链接 https://www.luogu.com.cn/problem/P1135 字面描述 题目描述 呵呵,有一天我做了一个梦,梦见 ...

  7. 洛谷P1135:奇怪的电梯(lift)

    题目 奇怪的电梯 - 洛谷 思路讲解 这道题主要用的是BFS(广度优先搜索),对电梯路径进行广搜,最后得出答案 广搜,全称广度优先搜索,相较dfs来讲,它更像是一个涟漪. 啥意思嘞?画一个图你就懂了 ...

  8. 洛谷 P1135 奇怪的电梯

    P1135 奇怪的电梯 代码实现 #include <iostream> #include <cstring> #include <queue> using nam ...

  9. 洛谷 P1135奇怪的电梯

    洛谷 P1135奇怪的电梯 代码 import java.io.*; import java.math.BigInteger; import java.util.*;public class Main ...

  10. P1135 奇怪的电梯

    题目描述 呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯.大楼的每一层楼都可以停电梯,而且第 i 层楼(1≤i≤N)上有一个数字 Ki​(0≤Ki​≤N).电梯只有四个按钮:开,关,上,下.上下的层 ...

最新文章

  1. AttributeError: Cant get attribute SPPF on module models
  2. Andy's First Dictionary
  3. C# 字符串按设置的格试在前面或后面增加空格或其它字符
  4. 通过配置文件避免硬编码的一个例子
  5. Spring学习笔记—最小化Spring XML配置
  6. MATLAB dsolve 函数求解偏微分方程一例
  7. Windows XP / 2003 / Vista 原版光盘镜像(下载)及其主要特征
  8. matlab相邻数据求差,matlab中求矩阵的本身相邻元素的波动标准差
  9. python操作mysql批量插入
  10. python星空代码_Python中的唯美星空代码详解!
  11. rfm模型python_Python pandas RFM模型应用实例详解
  12. ReactNative连接android模拟器
  13. 基于生成对抗网络结构的图像修复(GAN)
  14. stm32捕获占空比_【电机控制】六步法驱动BLDC电机,使用硬件COM事件,STM32+CUBEMX(HAL库)配置...
  15. 网络 启动计算机,电脑进入bios怎么设置网卡启动
  16. 51单片机8通道自动温度检测系统仿真+ Proteus仿真
  17. “即玩即赚”“从玩到赚”类游戏所面临的问题及方案
  18. 绘图配色软件 - ColorSchemer Studio
  19. [网络安全自学篇] 十四.Python攻防之基础常识、正则表达式、Web编程和套接字通信(一)
  20. 安卓手机管理_今天你又刷了多久手机?使用 App Usage 管理和追踪手机及应用的使用情况(安卓)...

热门文章

  1. [MySQL远程备份策略举例]
  2. matlab阿伦尼乌斯方程,马铃薯酶促褐变机理研究
  3. 【老罗笔记】异类(Outliers)
  4. python 剔除汉字_剔除word 中的除汉字以外字符
  5. 500Illegal PORT command 错误 无法取得目录列表 8uftp
  6. 关于将数据写入文件的两个函数fwrite()与fprintf()的大不同 —————— 开开开山怪
  7. onu搭建php,ONU的简单操作和故障排查
  8. 《路由器开发 - 路由器刷机指南》小米MINI刷机
  9. linux qdel强制删除任务,SGE:qsub/qstat/qdel/qhost 任务投递和监控
  10. 批量修改UWP版bilibili下载的视频文件名