题目描述 Description

在N*N的迷宫内,“#”为墙,“.”为路,“s”为起点,“e”为终点,一共4个方向可以走。从左上角((0,0)“s”)位置处走到右下角((n-1,n-1)“e”)位置处,可以走通则输出YES,不可以走则输出NO。

输入描述 Input Description

输入的第一行为一个整数m,表示迷宫的数量。 
其后每个迷宫数据的第一行为一个整数n(n≤16),表示迷宫的边长,接下来的n行每行n个字符,字符之间没有空格分隔。

输出描述 Output Description

输出有m行,每行对应的迷宫能走,则输出YES,否则输出NO。

样例输入 Sample Input

1
7
s...##.
.#.....
.......
..#....
..#...#
###...#
......e

样例输出 Sample Output

YES
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int maxn = 20;
int vis[maxn][maxn],n,flag;
char map[maxn][maxn];
int xx[5]={0,-1,1,0,0};
int yy[5]={0,0,0,-1,1};
void dfs(int x,int y)
{int i;vis[x][y]=1;if(map[x][y]=='e')  {flag=1;return ;}for(i=1;i<=4;i++){if(x+xx[i]>=0 && x+xx[i]<n && y+yy[i]>=0 && y+yy[i]<n && map[x+xx[i]][y+yy[i]]!='#' && vis[x+xx[i]][y+yy[i]]==0){dfs(x+xx[i],y+yy[i]);}/*把两个if合并,时间更少 if(x+xx[i]>=0 && x+xx[i]<n && y+yy[i]>=0 && y+yy[i]<n ){if( map[x+xx[i]][y+yy[i]]!='#' && vis[x+xx[i]][y+yy[i]]==0)dfs(x+xx[i],y+yy[i]);}*/}
}
int main ()
{int T,i,j;cin>>T;while(T--){cin>>n;memset(vis,0,sizeof(vis));memset(map,0,sizeof(map));for(i=0;i<n;i++)for(j=0;j<n;j++)cin>>map[i][j];flag=0;dfs(0,0);if(flag)printf("YES\n");elseprintf("NO\n");}return 0;
}

【ACM】CODE[VS] 1215 (DFS)相关推荐

  1. 【ACM】CODE[VS] 2806(DFS)

    感觉有点入了DFS的门槛,距离完全掌握还差得远呢 AC代码:运行时间为7ms #include <iostream> #include <cstdio> #include &l ...

  2. 【ACM】杭电OJ 2149

    Public Sale [问题描述] 虽然不想,但是现实总归是现实,Lele始终没有逃过退学的命运,因为他没有拿到奖学金.现在等待他的,就是像FarmJohn一样的农田生涯. 要种田得有田才行,Lel ...

  3. 【ACM】Spit Problem

    [ACM]Spit Problem 题目 In a Berland's zoo there is an enclosure with camels. It is known that camels l ...

  4. 【 MATLAB 】离散傅里叶级数(DFS)与DFT、DTFT及 z变换之间的关系

    上篇博文我们简单的讨论了离散傅里叶级数DFS和离散傅里叶变换DFT之间的关系,简单地说,DFT就是DFS在一个周期内的表现. [ MATLAB ]离散傅里叶变换(DFT)以及逆变换(IDFT)的MAT ...

  5. 【POJ】2676-Sudoku 【51Nod】1211-数独(DFS)

    [POJ]2676-Sudoku Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 25200 Accepted: 11782 Sp ...

  6. 【BZOJ1064】[Noi2008]假面舞会 DFS树

    [BZOJ1064][Noi2008]假面舞会 Description 一年一度的假面舞会又开始了,栋栋也兴致勃勃的参加了今年的舞会.今年的面具都是主办方特别定制的.每个参加舞会的人都可以在入场时选择 ...

  7. 【ACM】删数问题(待更)

    [描述]键盘输入一个正整数N,去掉其中任意S个数字后剩下的数字按原左右次序将组成一个新的正整数.编程对给定的N和S寻找一种方案使得剩下的数字组成的新数最小.(N不超过240位,N>S) [输入] ...

  8. 【ACM】连续出现的字符

    [描述]给定一个字符串,在字符串中找到第一个连续出现k次的字符 [输入]第一行包含一个正整数k,表示至少需要连续出现的次数.1<=k<=1000.第二行包含需要查找的字符串.字符串的长度在 ...

  9. 【ACM】UVa 489 刽子手游戏(自顶向下)

    [题目] Hangman Judge是一个猜英文单字的小游戏(在电子字典中常会看到),游戏规则如下: 1.答案单字写在纸上(每个字元一张纸),并且被盖起来,玩家每次猜一个英文字元(letter). 2 ...

最新文章

  1. getinstance方法详解_二、设计模式总览及工厂模式详解
  2. try finally 中的return
  3. 9月9日项目群管理活动讨论
  4. python安装在什么系统下最好-python开发环境哪个好用?如何搭建?
  5. POJ3040给奶牛发工资
  6. 天猫整站SSM-分页-limit(做个人学习笔记整理用)
  7. Win10系统自带输入法怎么设置
  8. JavaScript Ajax
  9. 优酷APP响应式布局在消费场景的落地之Android篇
  10. java获取classes_一个Java项目布署到weblogic里,听说weblogic会把classes目录打成jar包,怎么获取classes里文件的路径...
  11. JIT 编译器 是什么
  12. re学习笔记(0) CG-CTF-re-3 py交易
  13. Matlab GUI编程技巧(八):uitoolbar在图窗中创建工具栏
  14. Project 2016 中文版软件快捷键学习
  15. oracle ora00940,ORA-32773问题的解决方法。
  16. ECharts 示例——双Y轴(一)
  17. 计算机软件如何控制硬件工作,介绍软件是怎样控制硬件的
  18. Linux如何获取mtd数据,【转载】上接Linux MTD下获取Nand flash各个参数的过程的详细解析【转】...
  19. MACBOOK强制退出程序的方法
  20. fsl左右海马体分割+freesurfer合并

热门文章

  1. 学习Python往哪个方向发展好
  2. 浏览器tab关闭事件_Python--使用Pyqt5实现简易浏览器(最新版本测试过)
  3. 邀请参加活动的邀请函_圣诞节活动策划邀请函在线制作
  4. 【数据排序】车厢重组
  5. Android 在运行时请求权限
  6. python数据池连接PG
  7. Custom Client Side Drag and Drop Behavior in ASP.NET AJAX
  8. 【SqlServer】SqlServer中的更新锁(UPDLOCK)
  9. (二十一)数组的初始化
  10. Android 中文 API (25) —— ZoomControls