链接:https://www.nowcoder.com/acm/contest/93/D
来源:牛客网

题目描述

给你一个n*m的迷宫,这个迷宫中有以下几个标识:

s代表起点

t代表终点

x代表障碍物

.代表空地

现在你们涵哥想知道能不能从起点走到终点不碰到障碍物(只能上下左右进行移动,并且不能移动到已经移动过的点)。

输入描述:

输入第一行一个整数T(1<=T<=10)
接下来有T组测试数据,对于每一组测试数据,第一行输入2个数n和m(1<=n,m<=500)
接下来n行,每行m个字符代表这个迷宫,每个字符都是上面4个中的一种
数据保证只有一个起点和一个终点

输出描述:

对于每一组测试数据,如果可以的话输出YES,不可以的话输出NO

输入例子:
1
3 5
s...x
x...x
...tx
输出例子:
YES

-->

示例1

输入

1
3 5
s...x
x...x
...tx

输出

YES
【分析】:判断地图可达性。可以DFS搜索看是否可以到达终点,某点a[x][y] == 't'(终点) or v[ex][ey]==1(终点坐标) 就说明可以,输出YES
【代码】:
#include<bits/stdc++.h>

using namespace std;
#define ll long long
#define N 550 int t;
char a[N][N];
int dx[] = {, , -, };
int dy[] = {, -, , };
int v[N][N];
int f;
int n, m; int ok(int tx, int ty)
{
if(tx>= && tx<n && ty>= && ty<m && a[tx][ty]!='x' && v[tx][ty] == )
return ;
else return ;
} void dfs(int x, int y)
{
v[x][y] = ;
if(a[x][y] == 't'){
f = ;
return ;
}
for(int i=; i<; i++){
int x1 = x + dx[i];
int y1 = y + dy[i];
if(ok(x1,y1))
dfs(x1,y1);
} } int main()
{
int t, sx, sy;
scanf("%d", &t);
while(t--) {
f = ;
scanf("%d %d", &n, &m);
memset(v, , sizeof(v)); for(int i = ; i < n; i++) {
scanf("%s", a[i]);
} for(int i = ; i < n; i++) {
for(int j = ; j < m; j++) {
if(a[i][j] == 's') {
sx = i;
sy = j;
break;
}
}
}
dfs(sx, sy);
if(f == )
printf("YES\n");
else
printf("NO\n");
}
return ;
}
/*
1
3 5
s...x
x...x
...tx
*/

dfs

最新文章

  1. Unity内置的shader include files
  2. XML 文档和数据
  3. 数据库同步工具HKROnline SyncNavigator SQL Server互同步MySQL
  4. CSS3--幽灵按钮特效(实例)
  5. MongoDB log4j 日志整合
  6. 手机端的META你有多了解?
  7. C# winform DataTable 批量数据处理 增、删、改 .
  8. 使用jquery获取网页中图片的高度——解惑
  9. DOM中元素对象的属性方法
  10. 给php加速安装APC
  11. 图解ARP协议(三)ARP防御篇-如何揪出“内鬼”并“优雅的还手”
  12. bzoj 2816: [ZJOI2012]网络 (LCT 建多棵树)
  13. Mysql双主互备+keeplived高可用架构(部分)
  14. java多线程快速入门(二十二)
  15. laravel 比较好的资料地址 看云
  16. nltk中的三元词组,二元词组
  17. C#批量插入数据到Sqlserver中的四种方式 - 转
  18. 删除一个cjson导致系统死机
  19. (1.2)mysql 索引概念
  20. flex Datagrid checkbox

热门文章

  1. 12,scrapy框架之post请求
  2. mysql初始化失败的问题
  3. 网络抢票黄牛,大部分是骗人的。公布一个骗钱黄牛,QQ:2233261390,QQ群:29443597,支付页面:https://me.alipay.com/q336
  4. Hive jdbc连接出现java.sql.SQLException: enabling autocommit is not supported
  5. Linux内核使用毫秒延时函数
  6. [oldboy-django][2深入django]Form组件实现生成: select下拉框, checkbox复选框,radio单选框以及如何实现自定义数据格式要求
  7. [转]手写数字识别错误NameError: name &#39;mnist&#39; is not defined
  8. 为不是函数的对象 'dbo.xxxx' 提供了参数。如果这些参数要作为表提示,则需要使用 WITH 关键字
  9. LAMP总四部分
  10. 【bzoj1822】[JSOI2010]Frozen Nova 冷冻波 计算几何+二分+网络流最大流