迷宫寻宝

有一个N行M列由单元格组成的迷宫.迷宫中埋藏有宝物,每一个单元格可能为空地,为障碍物,为宝藏.现在请你写一个程序求从起点到宝藏的最短步数.
输入格式:第一行输入N M表示地图的行和列.后面N行输入M个0 或1,0表示空地,1表示障碍物.最后一行输入4个数,前俩个是起点的xy坐标,后俩个是终点的xy坐标.

代码实现`

#include<stdio.h>
int a[100][100],N,M,step =0,X,Y,min=500,book[100][100];//用数组a存储地图,数组book标记,min记录最小步数
void xunbao(int x,int y,int step)
{int x1,y1,b[4][2]={{1,0},{0,1},{-1,0},{1,0}};//四种走法上下左右,顺序无所谓if(x==X&&y==Y){//判断是否走到宝藏处if (step<min){min=step;//更新minreturn;} }for(int i=0;i<4;i++){//枚举四种走法x1=x+b[i][0];y1=y+b[i][1];if(x1<0||y1<0||x1>M-1||y1>N-1){//判断是否出界continue;}if(a[x1][y1]==0&&book[x1][y1]==0){//判断是否有障碍物或者走过book[x1][y1]=1;xunbao(x1,y1,step+1);book[x1][y1]=0;}}return;
}
int main()
{int x,y;scanf("%d%d",&N,&M);for(int i=0;i<N;i++){for(int j=0;j<M;j++){scanf("%d",&a[i][j]);}scanf("\n");}scanf("%d%d%d%d",&x,&y,&X,&Y);xunbao(0,0,0);printf("%d",min);
}可以自定义一个地图去验证代码的准确性

深度优先搜索之迷宫寻宝相关推荐

  1. Qt利用深度优先搜索实现迷宫寻宝

    先看效果: 利用QT搭建迷宫界面 利用单选框来构造迷宫,设置障碍物和宝藏的位置 利用深度优先搜索实现迷宫寻宝,并且在寻找的过程中避开障碍物. 搜索算法在线程中进行 定义方格的属性 enum Signa ...

  2. 深度优先搜索找迷宫的出路

    3. 深度优先搜索 现在我们用堆栈解决一个有意思的问题,定义一个二维数组: int maze[5][5] = {0, 1, 0, 0, 0,0, 1, 0, 1, 0,0, 0, 0, 0, 0,0, ...

  3. 打印数组算法:堆栈与深度优先搜索(迷宫问题)

    每日一贴,今天的内容关键字为打印数组 栈堆的拜访规矩被制约为Push和Pop两种作操,Push(入栈或压栈)向栈顶添加元素,Pop(出栈或弹出)则掏出前当栈顶的元素,也就是说,只能拜访栈顶元素而不能拜 ...

  4. 深度优先搜索—走迷宫

    例题:走迷宫 1.需要一个终止条件, 2.需要四个搜索方向:上下左右: 3.并且需要使用bool进行标记一个方向是否访问过: 4.如果需要找到多个可行解,那么如果该方向可行,需要取消标记.如果只需要也 ...

  5. 基于A*搜索和深度优先搜索解迷宫问题

    摘 要 迷宫问题是指能够从起始点寻找一条通往目标点的路径,迷宫的传统搜索是采用深度优先和宽度优先搜索,虽然也能够解决迷宫的求解问题,但是这些方法效率比较低.我们已经知道深度优先和广度优先搜索归于为盲目 ...

  6. 搜索专题——迷宫寻宝

    原题链接:FZU-2285 题目描述: 描述:洪尼玛今天准备去寻宝,在一个n*n (n行, n列)的迷宫中,存在着一个入口.一些墙壁以及一个宝藏.由于迷宫是四连通的,即在迷宫中的一个位置,只能走到与它 ...

  7. 深度优先搜索——走迷宫问题

    题目大意: 用二维数组存储一个n * m的迷宫,0表示路,1表示墙.一个人位于左上角 (1,1)(1,1) 处,已知该人每次可以向上.下.左.右任意一个方向移动一个位置,求从左上角移动到右下角的最少次 ...

  8. DFS(深度优先搜索)---迷宫(洛谷)----SCAU_LEO

    一.题目 题目链接:迷宫 首先,今天是1月2日,虽然有点晚了,但是还是祝大家新的一年快快乐乐,开开心心,题题AC,场场拿金,! 说说我对迷宫类题目的感受,我记得刚开始学迷宫的时候,不是看的很懂,但是睡 ...

  9. 用深度优先搜索解迷宫问题

    定义一个二维数组: int maze[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, } ...

最新文章

  1. Docker-Compose 使用简介
  2. matlab产生mif 文件,生成.mif文件的matlab程序
  3. 设计模式常见面试题汇总
  4. 视频盒子APP视频播放源代码安卓+IOS双端源码
  5. Dataset/Datatable/Datarow转Json的一种方法
  6. MySQL中表连接方式
  7. 在SQL SERVER 中如何备份和恢复单个表?
  8. 小程序开发:python sanic 实现小程序登录注册
  9. 高频量化交之李庆:在华尔街狼共舞的岁
  10. 机器学习(周志华) 第十六章强化学习
  11. 80386汇编_寄存器 寻址方式介绍
  12. 统计学cv值是什么意思_什么是CV值
  13. (转)网通电信域名劫持怎么办
  14. SVN介绍及使用总结
  15. 华为手机怎么语音服务器,原来华为手机实现文字转语音这么简单!今天才知道,真是绝了...
  16. Ubuntu软件安装与卸载
  17. spark任务一直卡住,问题分析、解决
  18. 推荐几个小白学习的网站
  19. 日元负利率和美元暴跌,是对人民币的夹击
  20. iPad Mini 到底什么样?4点概括

热门文章

  1. TX1刷机+安装YOLOv3
  2. Michael I. Jordan联合UC伯克利13位重量级学者:下一代人工智能系统的4大趋势和9大研究课题
  3. 运行命令七武器助你驰骋Windows
  4. 参考文献处理有bibtex转换到biber过程中出现的问题
  5. biblatex中标注压缩的处理代码解析
  6. Akka FSM 源代码分析
  7. java 注释与标识符
  8. DDD与TDD比较之——DDD
  9. 场景烘培分享——详情unity手册
  10. 把知识变成财富,最好的地方就是股市