POJ 3984

Description

定义一个二维数组:

  1. int maze[5][5] = {

  2. 0, 1, 0, 0, 0,

  3. 0, 1, 0, 1, 0,

  4. 0, 0, 0, 0, 0,

  5. 0, 1, 1, 1, 0,

  6. 0, 0, 0, 1, 0,

  7. };

它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。

Input

一个5 × 5的二维数组,表示一个迷宫。数据保证有唯一解。

Output

左上角到右下角的最短路径,格式如样例所示。

Sample Input

  1. 0 1 0 0 0
  2. 0 1 0 1 0
  3. 0 0 0 0 0
  4. 0 1 1 1 0
  5. 0 0 0 1 0

Sample Output

  1. (0, 0)
  2. (1, 0)
  3. (2, 0)
  4. (2, 1)
  5. (2, 2)
  6. (2, 3)
  7. (2, 4)
  8. (3, 4)
  9. (4, 4)
  1. //个人对DFS的体会:通过递归和带调用栈实现了回溯;
  2. //记录路径:不断的调用栈和相继出栈,从后往前的把数据压入栈中;
  3. #include<bits/stdc++.h> //POJ中使用这个头文件会CE;
  4. using namespace std;
  5.  
  6. int n=;
  7. int a[][];
  8. stack<pair<int,int>> stk;
  9.  
  10. //写DFS函数的时候一定要清晰每一种情况,每一个的循环条件要准确
  11. bool DFS(int i, int j)
  12. {
  13. if(i==n-&&j==n-){
  14. stk.push(make_pair(i,j));
  15. return true;
  16. }
  17.  
  18. if(a[i][j]==&&i>=&&j>=&&i<=n-&&j<=n-)
  19. {
  20. a[i][j]=; //表示这条路在后面的循环中不会再重复走了;
  21. if(DFS(i,j+)||DFS(i+,j)){
  22. stk.push(make_pair(i,j));
  23. return true;
  24. }
  25. else
  26. return false;
  27. }
  28. return false;
  29.  
  30. }
  31. int main()
  32. {
  33. memset(a, -, sizeof(a));
  34. for(int i=; i<n; i++)
  35. for(int j=; j<n; j++)
  36. cin>>a[i][j];
  37.  
  38. DFS(,);
  39.  
  40. while(stk.size()){
  41. printf("(%d, %d)\n",stk.top().first,stk.top().second);
  42. stk.pop();
  43. }
  44.  
  45. return ;
  46. }

POJ 3984(DFS入门题 +stack储存路径)的更多相关文章

  1. Oil Deposits(poj 1526 DFS入门题)

    http://poj.org/problem?id=1562                                                                       ...

  2. POJ 3984 迷宫问题(简单bfs+路径打印)

    传送门: http://poj.org/problem?id=3984 迷宫问题 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions ...

  3. [HDU]1016 DFS入门题

    题目的意思就是在1到n的所有序列之间,找出所有相邻的数相加是素数的序列.Ps:题目是环,所以头和尾也要算哦~ 典型的dfs,然后剪枝. 这题目有意思的就是用java跑回在tle的边缘,第一次提交就tl ...

  4. HDU 1241 连通块问题(DFS入门题)

    Input The input file contains one or more grids. Each grid begins with a line containing m and n, th ...

  5. POJ - 3984 迷宫问题 BFS求具体路径坐标

    迷宫问题 定义一个二维数组: 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, ...

  6. POJ 3984 迷宫问题 (BFS + Stack)

    链接 : Here! 思路 : BFS一下, 然后记录下每个孩子的父亲用于找到一条路径, 因为寻找这条路径只能从后向前找, 这符合栈的特点, 因此在输出路径的时候先把目标节点压入栈中, 然后不断的向前 ...

  7. POJ 3256 DFS水题

    枚举点 每次都搜一遍 //By SiriusRen #include <cstdio> #include <cstring> #include <algorithm> ...

  8. 咸鱼的ACM之路:DFS水题集

    DFS的核心就是从一种状态出发,转向任意的一个可行状态,直到达到结束条件为止.(个人理解) 下面全是洛谷题,毕竟能找到测试点数据的OJ我就找到这一个....在其他OJ上直接各种玄学问题... P159 ...

  9. Q - 迷宫问题 POJ - 3984(BFS / DFS + 记录路径)

    Q - 迷宫问题 POJ - 3984 定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, ...

随机推荐

  1. 使用 jQuery 调用 ASP.NET AJAX Page Method

    文章来源:http://chungle.iteye.com/blog/406054 说到轻量级的客户端通信,我注意到大多数人喜欢使用 ASP.NET AJAX Page Method 多于 ASMX ...

  2. Codeforces 1062 - A/B/C/D/E - (Undone)

    链接:http://codeforces.com/contest/1062 A - Prank - [二分] 题意: 给出长度为 $n(1 \le n \le 100)$ 的数组 $a[1 \sim ...

  3. Gym 101194H / UVALive 7904 - Great Cells - [数学题+快速幂][2016 EC-Final Problem H]

    题目链接: http://codeforces.com/gym/101194/attachments https://icpcarchive.ecs.baylor.edu/index.php?opti ...

  4. Mybatis 使用了哪些设计模式?

    https://mp.weixin.qq.com/s/ZTh4a-YST5RdIipHykWpPQ

  5. [设计语言][统一建模语言][软件开发方法学][UML] UML

    背景介绍 UML是一种统计建模语言. WIKI: https://en.wikipedia.org/wiki/Unified_Modeling_Language UML是OMG (object man ...

  6. Cesium调用 WMS 、WMTS 服务

    参考文章地址:Cesium调用 ArcGIS Sever 以及 GeoSever 发布的地图服务 cesium测试示例(包括官方的示例)中   arcgis服务都无法访问了 根据原文找到一个在线的可访 ...

  7. Memcache&Redis

    Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.减少数据库读取次数来提高网站速度 先在一台机器安装memcache 然后使用Python 安装pip3 i ...

  8. vue使用桌面Element-UI和移动端MintUI的UI框架

    vue使用桌面Element-UI和移动端MintUI的UI框架 element-uiElement - 网站快速成型工具http://element-cn.eleme.io/#/zh-CN 安装:n ...

  9. Linux VNC server 安装配置

    1.安装vnc server [root@pxe ~]# yum install tigervnc-server -y   2.设置 vnc server 开机启动 [root@pxe ~]# chk ...

  10. go中 -strconv包的使用

    strconv 包中的函数和方法 // atob.go ------------------------------------------------------------ // ParseBoo ...