【算法描述】

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

【算法代码】

#include <bits/stdc++.h>
using namespace std;const int maxn=51;
int a[maxn][maxn];
int book[maxn][maxn];
int m,n;
int sx,sy,p,q;
int imin=0x3f3f3f3f;
int next[4][2]={{0,1},{1,0},{0,-1},{-1,0}};void dfs(int x,int y,int step){int tx,ty;if(x==p && y==q){if(step<imin) imin=step;return;}for(int k=0;k<=3;k++){tx=x+next[k][0];ty=y+next[k][1];if(tx<1||tx>m||ty<1||ty>n) continue;if(a[tx][ty]==0 && book[tx][ty]==0){book[tx][ty]=1;dfs(tx,ty,step+1);book[tx][ty]=0;}}return;
}int main() {cin>>m>>n;for(int i=1;i<=m;i++){for(int j=1;j<=n;j++){cin>>a[i][j];}}cin>>sx>>sy>>p>>q;book[sx][sy]=1;dfs(sx,sy,0);cout<<imin;      return 0;
}/*
input:
5 4
0 0 1 0
0 0 0 0
0 0 1 0
0 1 0 0
0 0 0 1
1 1 4 3output:
7
*/

【参考文献】

https://www.cnblogs.com/OctoptusLian/p/7429645.html

解救小哈(dfs)-->改编自《啊哈!算法》相关推荐

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

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

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

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

  3. 解救小哈(深度优先,广度优先)

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

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

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

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

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

  6. 解救小哈(dfs或bfs)

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

  7. 《啊哈算法》学习五 解救小哈

    通过一个解救小哈的游戏,来学习深度优化搜索算法. 规则如下: 小哈被困在终点,小哼从(1,1)出发去找小哈,每一步只能选择往上下左右走一格,不能走到锁所在地格子上,也不能走出图片限定的区域,求出小哼走 ...

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

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

  9. 啊哈算法—解救小哈(广度优先搜索)

    解救小哈 小哈在一个(m * n)大小的迷宫(0 ⇐ m, n ⇐ 50)里迷路了.在迷宫中,每个单元格要么是空地,要么是障碍物.现在要找到从起点到小哈位置的最短步数. 思路: 使用队列储存扩展,扩展 ...

最新文章

  1. Node.js 究竟是什么?
  2. Sublime Text for Mac 如何格式化代码
  3. unity应用开发实战案例_「简历」STAR法则的实战应用,附手把手教学案例
  4. C语言显示系统时间的几个办法
  5. 万字长文!Go 后台项目架构思考与重构
  6. 【Deep learning】NLP
  7. sklearn_scaler
  8. 【教案】心田花开:如何辅导一年级孩子看图写话
  9. POI实现一个通用的Excel读取模板
  10. 比尔盖茨的十大人生定律中英对照
  11. 导出Word的两种方式
  12. BeautifulSoup解析豆瓣即将上映的电影信息
  13. 系统架构领域的一些学习材料-林仕鼎
  14. 空压机设备远程监控解决方案
  15. 新浪导航栏(CSS)
  16. 西门子/Siemens工业自动化系统SIMATIC控制器和SIMATIC ET 200 IO系统(PLC,HMI)
  17. PANS:视觉暴露增强了初级视皮层的刺激编码和保持
  18. abb机器人外部tcp定义方法_ABB机器人的各种通信运用方式
  19. 【Excel神技】之 数字大小写转换
  20. 实验室LIMS系统能带来什么好处?

热门文章

  1. 有哪些比较好的游戏图标推荐
  2. MapReduce和YARN区别
  3. java拒绝访问_java.io.FileNotFoundException: D:\xxx\yyy (拒绝访问。)问题
  4. GAT学习:PyG实现multi-head GAT(二)
  5. easybcd绿色免安装版
  6. 【论文笔记】End-to-End Knowledge-Routed Relational Dialogue System for Automatic Diagnosis
  7. Android平板电脑使用评测
  8. Java Portlet 规范概述
  9. 苏州新导化工厂与二道门人员定位解决方案-电子围栏系统-门禁一卡通系统
  10. 盛大bambook锦书十分钟应用评述