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

搜索与图论:宽度优先搜索

搜索与图论:宽度优先搜索

    • 题目描述
    • 参考代码

题目描述

在这里插入图片描述
输入样例

5 5
0 1 0 0 0
0 1 0 1 0
0 0 0 0 0
0 1 1 1 0
0 0 0 1 0

输出样例

8

参考代码

#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;const int N = 110;typedef pair<int, int> PII;int n, m;
int g[N][N];    // 存储地图
int d[N][N];    // 每一个点到起点的距离
PII q[N * N], Prev[N][N];int bfs()
{int hh = 0, tt = 0;q[0] = {0, 0};memset(d, -1, sizeof d);d[0][0] = 0;int dx[4] = {-1, 0, 1, 0}, dy[4] = {0, 1, 0, -1};while (hh <= tt){auto t = q[hh ++];for (int i = 0; i < 4; i++){int x = t.first + dx[i], y = t.second + dy[i];if (x >= 0 && x < n && y >= 0 && y < m && g[x][y] == 0 && d[x][y] == -1){d[x][y] = d[t.first][t.second] + 1;Prev[x][y] = t;q[++ tt] = {x, y};}}}int x= n - 1, y = m - 1;while (x || y){cout << x << ' ' << y << endl;auto t = Prev[x][y];x = t.first, y = t.second;}return d[n - 1][m - 1];
}int main()
{cin >> n >> m;for (int i = 0; i < n; i++)for (int j = 0; j < m; j++)cin >> g[i][j];cout << bfs() << endl;return 0;
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • TypeScript 快速入门 + 应用
  • 2024最新 Jenkins + Docker实战教程(八)- Jenkins实现集群并发构建
  • ARM-V9 RME(Realm Management Extension)系统架构之系统安全能力的MTE
  • 1.nginx介绍
  • Suno小技巧大揭秘,不会这些技巧别说你懂AI音乐
  • AI-知识库搭建(二)GPT-Embedding模型使用
  • CTE-6作文
  • centos7安装字体
  • 音视频开发19 FFmpeg 视频解码- 将 h264 转化成 yuv
  • 玄机靶场 第二章日志分析-mysql应急响应
  • Spring Boot 集成 zxing 生成条形码与二维码
  • 23.在游戏中按下Home键呼出辅助窗口
  • 【C++类和对象中篇】(构造函数和析构函数)
  • 【设计模式深度剖析】【4】【行为型】【策略模式】
  • 如何使用最简单、通俗地理解Python的函数呢?
  • HashMap ConcurrentHashMap
  • iOS 系统授权开发
  • JavaScript HTML DOM
  • MYSQL 的 IF 函数
  • Shadow DOM 内部构造及如何构建独立组件
  • springMvc学习笔记(2)
  • Vue 动态创建 component
  • 入门到放弃node系列之Hello Word篇
  • 算法-插入排序
  • 想写好前端,先练好内功
  • 由插件封装引出的一丢丢思考
  • 转载:[译] 内容加速黑科技趣谈
  • kubernetes资源对象--ingress
  • 进程与线程(三)——进程/线程间通信
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • ​如何使用QGIS制作三维建筑
  • #HarmonyOS:软件安装window和mac预览Hello World
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • $LayoutParams cannot be cast to android.widget.RelativeLayout$LayoutParams
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (leetcode学习)236. 二叉树的最近公共祖先
  • (八)Flink Join 连接
  • (笔试题)分解质因式
  • (二)c52学习之旅-简单了解单片机
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (三)模仿学习-Action数据的模仿
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • .form文件_SSM框架文件上传篇
  • .net core 控制台应用程序读取配置文件app.config
  • .Net Core中的内存缓存实现——Redis及MemoryCache(2个可选)方案的实现
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .net安装_还在用第三方安装.NET?Win10自带.NET3.5安装
  • .NET简谈设计模式之(单件模式)
  • ::
  • @ModelAttribute注解使用
  • @requestBody写与不写的情况
  • @Transactional 竟也能解决分布式事务?
  • [android]-如何在向服务器发送request时附加已保存的cookie数据