题目

奇怪的电梯 - 洛谷

思路讲解

这道题主要用的是BFS(广度优先搜索),对电梯路径进行广搜,最后得出答案

广搜,全称广度优先搜索,相较dfs来讲,它更像是一个涟漪.

啥意思嘞?画一个图你就懂了

它从起点开始,一圈一圈的盲目搜索,最终找到答案 你看,那一圈一圈的,像不像一圈涟漪?

……

正是因为他搜索的特点,所以只要找到了目标,就一定是最短路径(因为他是一圈一圈扩散的,不可能从另外一个地方绕过去比第一次找到的路径还要短)。

代码实现

#include <bits/stdc++.h>
using namespace std;
int n,a,b,k[210],v[210],cont;//v存储电梯路径
queue <int> q;//队列
int dx[2]={1,-1}; //偏移量
int search(int a,int b){q.push(a);while(!q.empty()){int tmp=q.front();q.pop();if(tmp==b) return v[tmp]-1;  //假如到达了终点,tmp-1是因为v起点设为了1,步数要减回来for(int i=0;i<2;i++){ //两种情况,向上或者向下int np=tmp;np=np+k[tmp]*dx[i];  //偏移量if(np<=n && np>=1 && v[np]==0){  //没有越界而且没有到过q.push(np);v[np]=v[tmp]+1;}}}return -1;
}
int main(){memset(v,0,sizeof(v));cin>>n>>a>>b;for(int i=1;i<=n;i++) cin>>k[i];v[a]=1;cout<<search(a,b); //输出结果return 0;
}

洛谷P1135:奇怪的电梯(lift)相关推荐

  1. 洛谷 P1135奇怪的电梯

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

  2. 洛谷 P1135 奇怪的电梯

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

  3. 洛谷P1135 奇怪的电梯 C++ 思路代码

    细心的兄弟们可能会发现啊,我今天的标题改了,这要是为了装逼

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

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

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

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

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

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

  7. P1135 奇怪的电梯题解

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

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

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

  9. P1135 奇怪的电梯

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

最新文章

  1. 谷歌提出新型卷积网络EfficientNet:推理速度提升5.1倍,参数减少88%(附论文代码)...
  2. TCP/IP详解--学习笔记(7)-广播和多播,IGMP协议
  3. POJ-1414 Life Line (暴力搜索)
  4. JAVA进制及进制之间的转换
  5. 单例设计模式-序列化破坏单例模式原理解析及解决方案
  6. leetcode96. 不同的二叉搜索树(动态规划)
  7. 软件工程模块开发卷宗_数据科学家应该了解的软件工程实践
  8. 收藏 | 使用 YOLO及OpenCV 实现目标检测
  9. Linux学习笔记(三):系统运行级与运行级的切换
  10. 安卓应用安全指南 六、困难问题
  11. TypeError:Joi.validate is not a function 解决办法
  12. spark++读写mysql_spark读写mysql
  13. java 补丁_java SP3补丁说明
  14. Office在线协作(三)- O2OA连接本地部署的OnlyOffice Docs Server服务器 For Windows Server
  15. 机器学习中的泛化误差
  16. idea 关闭检查更新_intellij idea怎么关闭自动更新
  17. c#应用:简单的图片查看器
  18. Redis 哨兵(Sentinel)相互监控、判断Master是否下线、处理Master故障(Automatic Failover:自动故障转移)、Sentinal总结
  19. Twitter技术主管回怼马斯克!马斯克:He’s fired!
  20. 新手也可以制作出大片的效果——Movavi Video Editor 15 Plus Mac

热门文章

  1. 今天吃什么随机网页_今天吃什么?周末教你做衢州鸭头,便宜、干净又美味
  2. iphone微信小程序底部预留bar安全距离css
  3. 让SOA使用者像超人一样自由
  4. SpringBoot项目集成UniPush推送服务
  5. 累计投放贷款1000亿,马云是如何做银行的?
  6. 国产手机操作系统艰难探索
  7. linux服务器抓包实例
  8. 用python玩转数据慕课答案第三周_大学慕课用Python玩转数据章节测验答案
  9. window11性能提升 打造高性能
  10. 游戏数据逆向分析系列课程之封包和线程发包