//第一篇博客,基于自己的理解,对解救小哈的详细解读。//

#include<stdio.h>
struct note//定义一个结构体队列
{int x;//横坐标 int y;//纵坐标 int s;//步数
};
int main()
{struct note que[2501];//地图大小不超过50*50int a[51][51]={0},book[51][51]={0};//a数组存地图,book标记那个点走过int next[4][2]={{0,1},{1,0},{0,-1},{-1,0}};//定义的方向int head,tail;//标记头和尾int i,j,k,n,m,startx,starty,endx,endy,tx,ty,flag;scanf("%d%d",&n,&m); //输入地图大小for(i=1;i<=n;i++)for(j=1;j<=m;j++)scanf("%d",&a[i][j]);//存入地图 scanf("%d%d%d%d",&startx,&starty,&endx,&endy);//输入起点坐标,终点坐标; head=1;tail=1; que[head].x=stratx;que[head].y=straty;que[head].s=0;//起点x坐标,起点y坐标,步数,存入队列 tail++;//尾巴往后指一位 book[startx][starty]=1;//起点坐标标记走过 flag=0;while(head<tail)//头尾不相等循环 {for(k=0;k<=3;k++)//四个方向走 {tx=que[head].x+next[k][0];//走后x的坐标 ty=que[head].y+next[k][1];//走后y的坐标 if(tx<1||tx>n||ty<1||ty>m)//如果超过了地图的范围,跳过此次循环,进入下一次 continue;if(a[tx][ty]==0&&book[tx][ty]==0)//如果可以通行,且没有走过 {book[tx][ty]=1;//走过后标记 que[tail].x=tx;//走完x坐标存入对列 que[tail].y=ty;//走完y坐标存入对列 que[tail].s=que[head].s+1;//步数加一 tail++; //尾巴往后移 }if(tx==endx&&ty==endy)//如果走到终点结束 {flag=1;break;}}if(flag==1)break;head++;//头往后移,也就是下一个位置的坐标继续走 } printf("%d",que[tail-1].s);//tail-1是因为tail永远是在最后一位的后一位,所以输出的时候要tail-1,才是答案 return 0;
} 

啊哈算法-bfs-解救小哈相关推荐

  1. 宽搜 c语言,啊哈算法之宽搜BFS解救小哈

    简述 本算法摘选自啊哈磊所著的<啊哈!算法>第四章第三节的题目--BFS算法再次解救小哈.文中代码使用C语言编写,博主通过阅读和理解,重新由Java代码实现了一遍,以此来理解BFS算法.关 ...

  2. JAVA算法:解救小哈(JAVA版)

    JAVA算法:解救小哈(JAVA版) 有一天,小哈一个人去玩迷宫.但是方向感不好的小哈很快就迷路了.小哼得知后便去解救无助的小哈.此时的小哼已经弄清楚了迷宫的地图,现在小哼要以最快的速度去解救小哈.那 ...

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

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

  4. 《啊哈算法》 解救小哈(深度优先算法——走迷宫实战) P86

    #include <stdio.h>int n, m, p, q, min=999999; //n和m分别为行和列, p和q分别为终点的x,y坐标, min是最小步数 int a[51][ ...

  5. 啊哈算法——万能的搜索——解救小哈DFS

    迷宫由n行m列的单元格组成(n和m都小于50),每个单元格要么是空地,要么是障碍物.你的任务是帮助小哼找到一条从迷宫的起点通往小哈所在位置的最短路径. (障碍物不能走,且不可走到迷宫外) /*啊哈算法 ...

  6. 蓝桥杯:解救小哈最短路径

    bfs解救小哈最短路径 有一天,小哈一个人去玩迷宫.但是方向感不好的小哈很快就迷路了.小哼得知后便去解救无助的小哈.此时的小哼已经弄清楚了迷宫的地图,现在小哼要以最快的速度去解救小哈.那么,问题来了- ...

  7. 解救小哈(dfs或bfs)

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

  8. 解救小哈——DFS算法举例

    一.问题引入 有一天,小哈一个人去玩迷宫.但是方向感不好的小哈很快就迷路了.小哼得知后便去解救无助的小哈.此时的小哼已经弄清楚了迷宫的地图,现在小哼要以最快的速度去解救小哈.那么,问题来了... 二. ...

  9. 解救小哈(dfs)-->改编自《啊哈!算法》

    [算法描述] 有一天,小哈一个人去玩迷宫.但是方向感不好的小哈很快就迷路了.小哼得知后便去解救无助的小哈.此时的小哼已经弄清楚了迷宫的地图,现在小哼要以最快的速度去解救小哈.那么,问题就此开始了... ...

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

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

最新文章

  1. 操作系统学习1:操作系统概述
  2. 【Linux】 字符串和文本处理工具 grep sed awk
  3. 【Leetcode】两个有序数组,求第k大的数
  4. Asp.Net就业课堂之模板控件
  5. jmeter+Fiddler:通过Fiddler抓包生成jmeter脚本
  6. 实体bean里面不要轻易加transient,反序列回来之后会变成null
  7. oracle 启动报错03113,oracle数据库无法启动,总报ora-03113错误
  8. 惠普m128fn中文说明书_惠普M128fn使用教程
  9. 苏宁易购实现逆势增长,但它的非电业务更超出意料
  10. 处理海量数据的方法与思路
  11. 老毛桃PE工具安装32位win7系统ISO镜
  12. 先锋女性与Lazada:面包与玫瑰的东南亚之旅
  13. Unity|一键复制log日志|小技巧
  14. c语言的编程switch,C语言之switch详解
  15. mysql计算员工的日薪_mysql 综合练习(一)
  16. 【Vue 2.0】用Vue写一个自己的简历网站带作品集
  17. Redis高性能缓存数据库
  18. vue中image 的:src 与 src
  19. 科创人·智慧芽技术副总裁屠昶旸:技术之路是挑战之路,不愿在大厂空耗岁月
  20. 【flask入门系列】请求钩子与上下文

热门文章

  1. VB连接ACCESS数据库精简版
  2. 数学建模18年美赛题目中英文
  3. Java实现校园论坛系统
  4. Web初学者-作业-[学子商城-收藏页]
  5. 【原创】我的辞职申请(2005-10-27)
  6. 3Dmax界面及快捷键介绍
  7. 数学建模——多属性决策模型
  8. 神经网络的发展与应用
  9. 教你用Python画简单的表情包(Turtle库的应用)
  10. 开源编解码项目FFmpeg迎来20周年生日 凭一己之力养活全球无数播放器!