解救小哈

小哈在一个(m * n)大小的迷宫(0 ⇐ m, n ⇐ 50)里迷路了。在迷宫中,每个单元格要么是空地,要么是障碍物。现在要找到从起点到小哈位置的最短步数。

思路:

使用队列储存扩展,扩展时每发现一个点就将这个点储存到队列中。当一个点扩展完毕,将其出队。

源码:

#include<stdio.h>struct queue {int x;int y;int s;
};int main() {struct queue que[2500];int tx, ty;int next[4][2] = { {0, 1}, {1, 0}, {0, -1}, {-1, 0} };int a[51][51];int book[51][51] = {0};int m, n;int q, p;int i, j;int flag = 0;int head = 0;int tail = 0;int k;//初始化队列que[tail].x = 1;que[tail].y = 1;que[tail].s = 0;tail++;book[1][1] = 1;printf("请输入地图大小:");scanf("%d %d", &n, &m);printf("请输入地图:\n");for (i = 1; i <= n; i++) {for (j = 1; j <= m; j++) {scanf("%d", &a[i][j]);}}printf("请输入起点:");scanf("%d %d", &que[head].x, &que[head].y);printf("请输入终点:");scanf("%d %d", &q, &p);while (head < tail) {for (k = 0; k < 4; k++) {// 寻找下一步tx = que[head].x + next[k][0];ty = que[head].y + next[k][1];if (tx < 1 || tx > n || ty < 1 || ty > m) {        //判断出界continue;}if (a[tx][ty] == 1 || book[tx][ty] == 1) {           //判断是否是障碍物或已走过continue;}que[tail].x = tx;                                    //入队que[tail].y = ty;que[tail].s = que[head].s + 1;tail++;book[tx][ty] = 1;if (tx == q && ty == p) {                            //判断是否到达终点flag = 1;break;}}if (flag == 1) {break;}head++;}printf("最短步数:%d\n", que[tail - 1].s);return 0;
}

啊哈算法—解救小哈(广度优先搜索)相关推荐

  1. 解救小哈——广度优先搜索bfs

    有一天,小哈一个去玩迷宫.但是方向感很不好的小哈很快就迷路了.小哼得知后便立即去解救无助的小哈.小哼当然是有备而来,已经弄清楚了迷宫地图,现在小哼要以最快速度去解救小哈.问题就此开始了-- 迷宫由n行 ...

  2. 算法复习|广度优先搜索BFS

    广度优先搜索BFS 文章目录 广度优先搜索BFS HDU-1253 胜利大逃亡 HDU-1241 Oil Deposits 算法思想 从初始状态S开始,利用一定的规则,生成所有下一层的状态,依次入队 ...

  3. 数据结构与算法--图的广度优先搜索 (BFS)

    广度优先搜索即是 一种"地毯式"层层推进的搜索策略,即先查找离起始顶点最近的,然后是次近的,依次往外搜索. BFS解决的最短路径问题. 采用BFS进行遍历的话,需要依赖队列,先进先 ...

  4. 《阿哈!算法》4-1不撞南墙不回头 4-2 解救小哈——深度优先搜索

    深度优先搜索关键在于解决"当下该如何做".至于"下一步如何做"则与当下该如何做"是一样的. 深度优先搜索模型: void dfs(int step){ ...

  5. 广度优先搜索_计算机入门必备算法——广度优先遍历搜索

    1.  序言 又很久没有学习了,上次学到哈希表又称散列表的相关知识,这次我们学习一种新的数据结构来建立网络模型.这种数据结构被称作图.首先,我们先应该先了解一下什么是图,其次学习第一种图的算法,这种图 ...

  6. 小白的算法初识课堂(part6)--广度优先搜索

    学习笔记 学习书目:<算法图解>- Aditya Bhargava 文章目录 图简介 图是啥 广度优先搜索 寻找最短路径 队列 实现图 实现算法 运行时间 图简介 今天是五一,假如我要从家 ...

  7. 啊哈算法-DFS解救小哈python版

    DFS 啊哈算法-解救小哈 maze_map = [] n,m = map(int,(input()).split()) maze_map = [input().split() for i in ra ...

  8. 《算法图解》学习笔记(六):图和广度优先搜索(附代码)

    欢迎关注WX公众号:[程序员管小亮] python学习之路 - 从入门到精通到大师 文章目录 欢迎关注WX公众号:[程序员管小亮] [python学习之路 - 从入门到精通到大师](https://b ...

  9. 12032 解救小哈

    标题: 解救小哈 标签: 搜索 广度优先搜索 详情: 有一天,小哈一个去玩迷宫.但是方向感很不好的小哈很快就迷路了.小哼得知后便立即去解救无助的小哈.小哼当然是有备而来,已经弄清楚了迷宫地图,现在小哼 ...

最新文章

  1. jenkins+svn搭建
  2. jQuery 分类导航菜单条点击变色
  3. 将军令:数据安全平台建设实践
  4. 测试用例设计方法_黑盒测试——测试用例设计方法
  5. win7怎么在计算机找文件夹选项,解决WIN7工具菜单没有文件夹选项/文件夹和搜索选项变灰色...
  6. 重庆理工大学计算机考研分数,重庆理工大学历年考研分数线汇总[2012-2021]
  7. graham算法 java_凸包Graham Scan算法实现
  8. 【OpenCV3】直线拟合--FitLine()函数详解
  9. ubuntu下载神器---xdm
  10. 《悲伤逆流成河》影评
  11. 编程题——合法括号序列
  12. 作为一个准研究生,怎样才能在研究生阶段不虚度?
  13. MQTT协议之Mosquitto
  14. MP4测试视频URL地址分享,亲测有效。可用于测试HTML5播放器效果。
  15. SD卡家族纵览(SD miniSD microSD SDIO)
  16. 移动网站性能优化:网页加载技术概览
  17. 文献阅读07期:智网中动态电价对太阳能板普及的影响
  18. 网络运维基础知识梳理
  19. 路遥的《人生》——文摘
  20. 教师计算机能力提升工程总结,博达中学校教师信息技术应用能力提升工程工作总结...

热门文章

  1. opencv学习日记——娜扎小姐姐与猫咪的图像融合,超美哈哈哈
  2. 7-4 房产税费计算2022 (12 分)
  3. mysql 字段被截断_msyql存储数据时字段被截断
  4. 基于Jenkins和Kubernetes流水线实现应用的自动发版
  5. [oeasy]python0131_[趣味拓展]各种符号_汉语拼音符号_中文全角英文字母_中文全角标点
  6. 普元框架-那些年一起走过的坑
  7. 【python做接口测试的学习记录day9——pytest自动化测试框架之yaml数据驱动封装】
  8. 流年暗换,是什么偷走了我们的爱情
  9. UNI-APP安卓本地打包详细教程(保姆级)
  10. 网络协议之TCP和UDP