洛谷P1135:奇怪的电梯(lift)
题目
奇怪的电梯 - 洛谷
思路讲解
这道题主要用的是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)相关推荐
- 洛谷 P1135奇怪的电梯
洛谷 P1135奇怪的电梯 代码 import java.io.*; import java.math.BigInteger; import java.util.*;public class Main ...
- 洛谷 P1135 奇怪的电梯
P1135 奇怪的电梯 代码实现 #include <iostream> #include <cstring> #include <queue> using nam ...
- 洛谷P1135 奇怪的电梯 C++ 思路代码
细心的兄弟们可能会发现啊,我今天的标题改了,这要是为了装逼
- 广度优先搜索——奇怪的电梯(洛谷 P1135)
广度优先搜索普及/提高篇,今天讲述的是洛谷里的一道题 奇怪的电梯(洛谷 P1135) 说一下我解题时候的思路吧. 首先读清楚题目,题目要求输出从 a楼 到 b楼的最少次数,楼层必须在[1,n]之间升降 ...
- 1360:奇怪的电梯(lift) 《信息学奥赛一本通》
http://ybt.ssoier.cn:8088/problem_show.php?pid=1360 /* 1360:奇怪的电梯(lift)--AC http://ybt.ssoier.cn:808 ...
- 一本通1360:奇怪的电梯(lift)
1360:奇怪的电梯(lift) 大楼的每一层楼都可以停电梯,而且第i层楼(1≤i≤N)(1≤i≤N)上有一个数字Ki(0≤=Ki≤=N)Ki(0≤=Ki≤=N).电梯只有四个按钮:开,关,上,下.上 ...
- P1135 奇怪的电梯题解
P1135 奇怪的电梯题解 题目 链接 字面描述 代码实现 题目 链接 https://www.luogu.com.cn/problem/P1135 字面描述 题目描述 呵呵,有一天我做了一个梦,梦见 ...
- 奇怪的电梯(洛谷-P1135)
题目描述 呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯.大楼的每一层楼都可以停电梯,而且第 i 层楼 (1≤i≤N) 上有一个数字 Ki(0≤Ki≤N) .电梯只有四个按钮:开,关,上,下.上 ...
- P1135 奇怪的电梯
题目描述 呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯.大楼的每一层楼都可以停电梯,而且第 i 层楼(1≤i≤N)上有一个数字 Ki(0≤Ki≤N).电梯只有四个按钮:开,关,上,下.上下的层 ...
最新文章
- 谷歌提出新型卷积网络EfficientNet:推理速度提升5.1倍,参数减少88%(附论文代码)...
- TCP/IP详解--学习笔记(7)-广播和多播,IGMP协议
- POJ-1414 Life Line (暴力搜索)
- JAVA进制及进制之间的转换
- 单例设计模式-序列化破坏单例模式原理解析及解决方案
- leetcode96. 不同的二叉搜索树(动态规划)
- 软件工程模块开发卷宗_数据科学家应该了解的软件工程实践
- 收藏 | 使用 YOLO及OpenCV 实现目标检测
- Linux学习笔记(三):系统运行级与运行级的切换
- 安卓应用安全指南 六、困难问题
- TypeError:Joi.validate is not a function 解决办法
- spark++读写mysql_spark读写mysql
- java 补丁_java SP3补丁说明
- Office在线协作(三)- O2OA连接本地部署的OnlyOffice Docs Server服务器 For Windows Server
- 机器学习中的泛化误差
- idea 关闭检查更新_intellij idea怎么关闭自动更新
- c#应用:简单的图片查看器
- Redis 哨兵(Sentinel)相互监控、判断Master是否下线、处理Master故障(Automatic Failover:自动故障转移)、Sentinal总结
- Twitter技术主管回怼马斯克!马斯克:He’s fired!
- 新手也可以制作出大片的效果——Movavi Video Editor 15 Plus Mac