问题描述
定义一个二维数组:

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表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。
输入描述
一个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
代码实现

#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <math.h>
using namespace std;
struct node
{int x,y;
} foot[20];
int maze[10][10];
int flag=0;
int mov[4][2]= {0,1,1,0,-1,0,0,-1};
int vis[20][20]= {0};
void dfs(int x,int y,int step)
{int i;if(flag)return;if(x==4 && y==4){flag=step;return;}for(i=0; i<4; i++){int next_x=x+mov[i][0];int next_y=y+mov[i][1];if(next_x<0||next_y<0||next_x>4||next_y>4)continue;if(maze[next_x][next_y]==1)continue;if(vis[next_x][next_y])continue;vis[next_x][next_y]=1;foot[step+1].x=next_x;foot[step+1].y=next_y;dfs(next_x,next_y,step+1);if(flag)return;vis[next_x][next_y]=0;}
}
int main()
{int i,j;for(i=0; i<5; i++){for(j=0; j<5; j++){scanf("%d",&maze[i][j]);}}foot[0].x=foot[0].y=0;dfs(0,0,0);for(i=0; i<=flag; i++){printf("(%d, %d)\n",foot[i].x,foot[i].y);}return 0;
}

深搜(不撞南墙不回头),迷宫问题相关推荐

  1. c++ 不撞南墙不回头——树形动态规划(树规)

    不撞南墙不回头--树规总结                                         焦作一中信息学oy 之所以这样命名树规,是因为树规的这一特殊性:没有环,dfs是不会重复,而 ...

  2. 转不撞南墙不回头——树规总结

    之所以这样命名树规,是因为树规的这一特殊性:没有环,dfs是不会重复,而且具有明显而又严格的层数关系.利用这一特性,我们可以很清晰地根据题目写出一个在树(型结构)上的记忆化搜索的程序.而深搜的特点,就 ...

  3. “ 一条路走到黑,不撞南墙不回头”——C++【DFS(深度优先搜索算法)】入门讲解

    Hello,大家好,我是Amy,好久不见(我真好意思说好久不见)~ 虽迟但到,你们一直催更的dfs算法终于来啦~ 话不多说,让我们直接进入主题吧! 目录 缺点 简介 "地图类" 深 ...

  4. 不撞南墙不回头——树形动态规划(树规)

    不撞南墙不回头--树规总结                                         焦作一中信息学oy 之所以这样命名树规,是因为树规的这一特殊性:没有环,dfs是不会重复,而 ...

  5. 所谓的不撞南墙不回头

    只愿自己一派纯真,不撞南墙不回头 -- 挣扎在计算机领域的小萌新 (1) 回顾你过去三年的学习经历 ♥ 当初你报考的时候,是真正喜欢计算机这个专业么? 答: 报考啊...怎么说呢,我从高中的时候就已经 ...

  6. Scratch教学课程:不撞南墙不回头

    Hi,大家好,本次介绍Scratch的基础运用,内容如下: 使用角色制作动画并在舞台上移动 理解Scratch基本的运动.外观.条件控制等基础积木的应用. 响当当老师把本次的项目叫做:不撞南墙不回头. ...

  7. 你还有“不撞南墙不回头”之心吗?

    我们的学习,工作和生活中如果拥有各种各样的经验,会使处事变的更加顺利.这些经验可以是生活实践中得到的知识或技能,可以是生活经历中总结的思想和体会. 郎咸平说:"世界上最聪明的人是借用别人撞的 ...

  8. 算法简介:不撞南墙不回头----深度优先搜索算法(DFS)

    算法简介:不撞南墙不回头----深度优先搜索算法(DFS) 算法简介 算法简介 DFS算法简介 略 DFS算法思想 首先以一个未被访问过的顶点作为起始顶点,沿当前顶点的边走到未访问过的顶点;当没有未访 ...

  9. 【DFS】不撞南墙不回头—深度优先搜索算法[Deep First Search]

    今天上午听到,那个非常6+1的李咏先生因癌症去世 DFS算法的基本模型 深度下,不撞南墙不回头,就是一直往后找,知道没有路了,向后返回. 想起一首民谣,<可能否>--木小雅 https:/ ...

  10. 深度优先算法(一路走到底,不撞南墙不回头)

    一条路走到底,不撞南墙不回头,深度优先算法就是一个这样的'莽夫',然而就是一位这样的'莽夫',却是我们刷算法题的一个必不可少的制胜法宝. 深度优先算法特点: 只要前面有可以走的路,那就一直往前走,直到 ...

最新文章

  1. SDE要素类导出为shp格式文件
  2. 265. To B 端 Web 页面上线前 checklist
  3. HTTPS从认识到线上实战全记录
  4. linux下网络排错与查看
  5. Remote PC另类用法:远程控制
  6. 如何使用开源SFU构建RTC云服务
  7. java环境怎样搭建_如何学习JAVA?怎么搭建JAVA环境?怎么安装JDK?
  8. matlab时域分析论文,基于Matlab语言的数字信号时域相关性研究与分析.doc
  9. 清华大学发布10大机器翻译学习必读论文清单 | 资源
  10. Building JavaScript Games for Phones Tablets and Desktop(6)- 响应玩家输入
  11. python是干什么用的-使用Python究竟可以做什么?下面是Python的3个主要应用
  12. simpledateformat格式_为什么日期格式化时必须有使用y表示年,而不能用Y?
  13. 【并联机构工作空间分析系列2】圆弧相交法 论文解读及matlab程序
  14. 使用 Elasticsearch ik分词实现同义词搜索
  15. 米勒-拉宾质数判断证明
  16. Python压缩、减压7z文件
  17. 基片集成波导天线设计基础
  18. 点餐推荐系统_自助点餐、自助收银…智慧餐厅的下一步又会是什么?
  19. 比脱发更可怕的是白头发!一种特殊的压力会使你早生华发
  20. 【Java基础1】Java开发工具包JDK

热门文章

  1. 终身成长----“成长型思维”
  2. 高老师的架构设计_隽语集(AA_0151)
  3. 5年400倍增长,Airbnb首位数据科学家揭秘他们到底怎么做的?
  4. ​linux 添加开机启动项的三种方法
  5. 歌词制作软件C#实现
  6. 快速屏蔽百度热榜百度广告百度推广
  7. Mysql基础篇(8)—— 变量、流程控制和游标
  8. Uncaught TypeError: Cannot read property 'decimalSeparator' of undefined
  9. ninja ripper新版教程
  10. 2019迅雷校园招聘!后端工程师岗位两次技术面题目总结和解析