题目描述:

sun所在学校每年都要举行电脑节,今年电脑节有一个新的趣味比赛项目叫做闯迷宫。
sun的室友在帮电脑节设计迷宫,所以室友就请sun帮忙计算下走出迷宫的最少步数。
知道了最少步数就可以辅助控制比赛难度以及去掉一些没有路径到达终点的map。
比赛规则是:从原点(0,0)开始走到终点(n-1,n-1),只能上下左右4个方向走,只能在给定的矩阵里走。

输入:

输入有多组数据。
每组数据输入n(0<n<=100),然后输入n*n的01矩阵,0代表该格子没有障碍,为1表示有障碍物。
注意:如果输入中的原点和终点为1则这个迷宫是不可达的。

输出:

对每组输入输出该迷宫的最短步数,若不能到达则输出-1。

样例输入:
2
0 1
0 0
5
0 0 0 0 0
1 0 1 0 1
0 0 0 0 0
0 1 1 1 0
1 0 1 0 0
样例输出:
2
8

核心代码(百度):

structNode
{
intx;
inty;
intstep;
Node(intx1,inty1,intstep1):x(x1),y(y1),step(step1){}
};
intBFS()
{
Nodenode(0,0,0);
queue<Node>q;
while(!q.empty())q.pop();
q.push(node);
while(!q.empty())
{
node=q.front();
q.pop();
if(node.x==n-1&&node.y==n-1)
{
returnnode.step;
}
visit[node.x][node.y]=1;
for(inti=0;i<4;i++)
{
intx=node.x+stepArr[i][0];
inty=node.y+stepArr[i][1];
if(x>=0&&y>=0&&x<n&&y<n&&visit[x][y]==0&&mazeArr[x][y]==0)
{
visit[x][y]=1;
Nodenext(x,y,node.step+1);
q.push(next);
}
}
}
return-1;
}

题目1335:闯迷宫( BFS在求解最短路径或者最短步数上有很多的应用)相关推荐

  1. DFS走迷宫问题(非最短路径)

    上面之所以要强调非最短路径,是因为在下一篇我要用BFS来求解最短路径的问题.这里只是讲如何走出迷宫. #include<cstdio> #define M 10 #define N 10 ...

  2. 图论:迪克斯特求解最短路径算法及MATLAB实现

    文章目录 1. 按 2. 算法讲解 2.1. 理论讲解 2.2. 实例讲解 2.2.1. 初始化 2.2.2. 执行算法 3. matlab实现 4. 测试 4.1. 测试一 4.2. 测试二 1. ...

  3. 九度 题目1335:闯迷宫 题目1365:贝多芬第九交响曲

    转载请注明本文地址http://blog.csdn.net/yangnanhai93/article/details/40718149 简单说说宽度优先搜索BFS 说实话,这是第一个自己写的宽度优先搜 ...

  4. 九度oj 题目1335:闯迷宫

    题目描述: sun所在学校每年都要举行电脑节,今年电脑节有一个新的趣味比赛项目叫做闯迷宫. sun的室友在帮电脑节设计迷宫,所以室友就请sun帮忙计算下走出迷宫的最少步数. 知道了最少步数就可以辅助控 ...

  5. 电子老鼠闯迷宫(BFS)

    电子老鼠闯迷宫 Description 如下图12×12方格图,找出一条自入口(2,9)到出口(11,8)的最短路径. Input Output Sample Input 12 //迷宫大小 2 9 ...

  6. 图的应用—求解最短路径(BFS、Dijkstra和Floyd算法)

    BFS算法虽然可以求解最短路径问题,但是需要注意的是该算法只能求解非带权图的单源最短路径问题,或者说带权值相同且为1的图单源最短路径问题. 1.图的邻接矩阵存储结构定义 #define MaxVerN ...

  7. 计算机软件实习项目三 —— 超级玛丽闯迷宫 (实验准备) 12-19(12-21更新)

    实验准备(超级玛丽闯迷宫)   经过了前面两个项目的实践,我对python和pyqt5已经有了一定的了解,除了能够把实验要求全部完成,还加入了自己的一些想法在游戏里,让游戏更加有趣.   第三个项目主 ...

  8. 2019第十届蓝桥杯B组C++省赛E题迷宫--BFS(倒搜)

    试题 E: 迷宫 本题总分:15 分 [问题描述] 下图给出了一个迷宫的平面图,其中标记为 1 的为障碍,标记为 0 的为可以通行的地方. 010000 000100 001001 110000 迷宫 ...

  9. 【动态规划】机器人走迷宫-BFS

    机器人走迷宫-BFS 题目描述:给一个矩阵,0代表可走位置,1代表障碍物 给定起点和终点和行走规则(上.下.左.右),输出最短路径 探寻最短路径-BFS 首先定义两个辅助函数,valid_action ...

最新文章

  1. 决策树算法(六)——构建决策树
  2. Go -- 配置监控系统
  3. oracle中DBWR全称,Oracle基本术语大全
  4. A - Supercentral Point CodeForces - 165A
  5. 【SpringCloud】Ribbon-实例
  6. 蛋疼的配置go opengl的记录 running gcc failed: exit status 1 in golang in windows
  7. html类名定义规则_HTML入门笔记1
  8. oracle中错位函数,Oracle中的一些函数
  9. 算法,天使还是魔鬼?
  10. html两个字段自动相加,HTML_两个并列的div让其根据内容自动保持同等高度,我们看下下面这个问题:有左 - phpStudy...
  11. faster rcnn一些博客
  12. mysql建表的字段类型和约束条件
  13. 古老的window程序设计
  14. IE设置自动获得代理(ISA20042006中设置相应项)
  15. Powerdesigner下载安装
  16. python分层抽样_抽样方法—分层抽样
  17. Word文件批量查找替换字符串
  18. cents7.6安装rancher
  19. 8.磁盘存储器的管理
  20. 帆软 ---- 单元格显示固定大小

热门文章

  1. java 管理系统登陆完毕后关闭窗口_【求助】登录窗口登录成功后隐藏窗口
  2. Linux的实际操作:文件目录类的实用指令(ln history)
  3. php如何获取服务器时间_php如何获取当前日期
  4. 堆排序时间复杂度_图解堆结构、堆排序及堆的应用
  5. treeview控件怎么折叠_拍摄的视频闪烁怎么办?一招就能搞定,电脑手机都适用...
  6. python 函数例子_Python3函数之例子
  7. JAVA基础知识需要注意的细节
  8. android 充电动画_iPhone 12充电测试:18/20W并无明显区别
  9. android 自定义桌面图标大小设置,手机桌面图标尺寸可以改?OriginOS重新定义个性化...
  10. android 访问服务器josn文件,Android客户端对服务器回来的json文件进行解析