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

走迷宫(BFS)

image

输入样例:

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<bits/stdc++.h>
using namespace std;typedef pair<int,int> pii;
const int N = 110;int n ,m;
int s[N][N];//用存放地图
int d[N][N];//用于存放每个点到起点的距离
pii q[N*N];//定义一个队列,手动模拟int dx[]={0,0,-1,1};
int dy[]={-1,1,0,0};int bfs()
{int h=0,t=0;//队头和队尾q[0]={0,0};memset(d,-1,sizeof(d));//把所有点距离置为-1表示没有走过。d[0][0]=0;//起点自身的距离是0while(h<=t)//队列非空{auto k = q[h++];//取出队头//尝试往上下左右四个方向扩展for(int i=0;i<4;i++){int x = k.first + dx[i];int y = k.second + dy[i];//判断 点是否在范围内 并且 可以走 并且 没走过if(x>=0 && x<n && y>=0 && y<m &&s[x][y]==0 &&d[x][y]==-1){d[x][y]=d[k.first][k.second]+1;q[++t] = {x,y};}}}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>>s[i][j];}}cout<<bfs()<<endl;}
http://www.rkmt.cn/news/10532.html

相关文章:

  • MyBatis分页的原理和分页插件的原理是什么
  • 旋转图像-leetcode
  • 哪些ERP系统值得长期使用?2025年最新盘点来了!
  • 2025年9月23日 - 20243867孙堃2405
  • 软件工程学习日志2025.9.23
  • 07-django+DRF项目中统一json返回格式 - 详解
  • 软工第二次作业——个人项目
  • AT_arc181_d [ARC181D] Prefix Bubble Sort
  • 【MySQL】使用C/C++链接mysql数据库 - 指南
  • day002
  • 【51单片机】【protues仿真】基于51单片机密码锁系统 - 详解
  • cv-css 快捷方式,将指定节点的计算样式获取下拉 获取tailwind网页样式成原生样式
  • # Shell 文本处理三剑客:awk、sed 与常用小器具详解
  • matter 协议解析;
  • nRF54LM20A GRTC
  • 2025年10款最佳生产力提效chrome插件推荐,亲测有用
  • 发表第一篇文章,谈谈对软件工程的理解
  • nRF54LM20A 芯片分析;
  • 第二天
  • Win10服务器远程连接断开后.bat脚本进程中断的全面解决高效的方案
  • 软件测试员的核心技能:一文掌握等价类划分与边界值分析
  • 9/23
  • NUMERICAL RESULT (2025/09/23)
  • 数组入门:从零基础到排序算法 - 教程
  • Optuna v4.5新特性深度解析:GPSampler实现约束多目标优化
  • 题解:P4769 [NOI2018] 冒泡排序
  • 详细介绍:内网后渗透攻击--域控制器安全(1)
  • 20250923
  • java面试笔试题大汇总 ~很全面收藏 - 详解
  • 0基础读CCFA(TPDS)论文—面向多 GPU 平台机器学习训练的通用性能建模