迷宫寻宝

有一个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. 《OpenCV3编程入门》学习笔记9 直方图与匹配(三)直方图对比
  2. linux使用小技巧——screen
  3. Android第十五课 Jni自带的iconv库不支持GBK转码
  4. qt combox 向上弹出_一睹芳容!人类首次拍到活的公羊角乌贼 手臂和触须向上飞速穿过水柱...
  5. Hibernate的dynamic-insert和dynamic-update的使用
  6. 【VS开发】static、extern分析总结
  7. html5 的有那些新标签,Html5新标签都有那些
  8. php页面设定语言,php实现获取及设置用户访问页面语言类,php页面_PHP教程
  9. Linux下mysql源码包安装
  10. 内向的人能做管理吗?
  11. B站、字节跳动等上榜2021福布斯中国最佳雇主榜;中兴发布“5G 智能T恤”:可监测呼吸;Linux 5.13 发布|极客头条...
  12. TCP/IP的全部IP协议号
  13. conda 虚拟环境内安装git_用anaconda创建的虚拟环境安装FALCON
  14. SQL,修改表列明错误,不允许保存更改,阻止保存要求重新创建表的更改
  15. 一种基于C6748 DSP+FPGA的软件无线电平台的设计及应用
  16. 苹果电脑表格取消自动计算机,苹果电脑excel序列被隐藏怎么办
  17. db2 windows linux,Migrate DB2 v9 on windows to DB2 v10.5 on linux
  18. 杭州市一医院李勇挂号指南
  19. pycharm激活2099年方法
  20. CSS 单词换行 word-break属性

热门文章

  1. podcast_我在Hanselminutes Fresh Tech Podcast上对社区,生产力,友善和正念的看法
  2. BZOJ1171: 大sz的游戏BZOJ2892: 强袭作战
  3. inotify+rsync实时同步 彻底告别同步慢
  4. Rsync+inotify 实时同步
  5. 艾永亮:为什么步步高企业能够打造超级产品成为“家长收割机”
  6. 自动交易股票接口开发的关键是什么?
  7. zuc算法c需语言,3GPP机密性和完整性算法规范128-EEA3和128-EIA3(二)-祖冲之算法的C语言实现 - 小黑电脑...
  8. 色可冽重捕剂ZP01
  9. 京东商品详情,关键词搜索,价格监控,产品竞价,品牌维权
  10. 销售季度汇报总结PPT模板