当前位置: 首页 > news >正文

题解 洛谷 Luogu P1135 奇怪的电梯 广度优先搜索 BFS C/C++

题目传送门:

P1135 奇怪的电梯 - 洛谷 | 计算机科学教育新生态icon-default.png?t=O83Ahttps://www.luogu.com.cn/problem/P1135思路:

一道比较裸的 BFS,就是把走迷宫每次搜周围相邻四格,改成了楼层每次搜上下方向的某层而已

感觉这个题难度只有普及-

代码:

#include <cstdio>
using namespace std;
const int N = 205;
int n, a, b, arr[N], q[N], head, tail = -1, ans[N];//ans[] 存结果
bool mk[N];//mk[] 标记已走过的楼层。可以将 ans[] memset 为全 -1,ans[i] == -1 就表示没走过
//但是还是多开一个数组比较清晰
int BFS()
{q[++tail] = a;//预处理mk[a] = true;while (head <= tail){int t = q[head++];if (t == b) return ans[t];//找到答案int up = t + arr[t], down = t - arr[t];//两个方向上的某个楼层if (up <= n && mk[up] == false) q[++tail] = up, mk[up] = true, ans[up] = ans[t] + 1;if (down >= 1 && mk[down] == false) q[++tail] = down, mk[down] = true, ans[down] = ans[t] + 1;//楼层合法且没走过就入队}return -1;
}
int main()
{scanf("%d%d%d", &n, &a, &b);for (int i = 1; i <= n; i++) scanf("%d", &arr[i]);printf("%d", BFS());return 0;
}

http://www.mrgr.cn/news/81211.html

相关文章:

  • Cesium材质——Material
  • 【React 基础及高级用法】
  • 智能语音识别模块与声音传感器模块对比分析:原理、优缺点、性价比与应用领域
  • jsp | servlet | spring forEach读取不了对象List
  • QT打包【非单个exe】
  • django中cookie与session的使用
  • Debian环境安装Docker Engine
  • 重温设计模式--迭代器模式
  • redis 缓存使用
  • 使用GPT进行SCI论文润色常用语句
  • 重温设计模式--模板方法模式
  • vue前端实现同步发送请求,可设置并发数量【已封装】
  • 重温设计模式--外观模式
  • 网络编程(王铭东老师)笔记
  • 重温设计模式--适配器模式
  • 重温设计模式--设计模式七大原则
  • 解决 Curl 自签名证书验证失败的实用指南
  • 常见数据结构
  • Krita安装krita-ai-diffusion工具搭建comfyui报错没有ComfyUI_IPAdapter_plus解决办法
  • 设计一个监控摄像头物联网IOT(webRTC、音视频、文件存储)
  • Python(二)str、list、tuple、dict、set
  • 直流有刷电机多环控制(PID闭环死区和积分分离)
  • leetcode 704. 二分查找
  • 【星海随笔】高级系统编辑
  • ARP协议的工作原理
  • 双足机器人《荣耀机甲H1》到手体验