Description

可怜的公主在一次次被魔王掳走一次次被骑士们救回来之后,而今,不幸的她再一次面临生命的考验。魔王已经发出消息说将在T时刻吃掉公主,因为他听信谣言说吃公主的肉也能长生不老。年迈的国王正是心急如焚,告招天下勇士来拯救公主。不过公主早已习以为常,她深信智勇的骑士LJ肯定能将她救出。 
现据密探所报,公主被关在一个两层的迷宫里,迷宫的入口是S(0,0,0),公主的位置用P表示,时空传输机用#表示,墙用*表示,平地用.表示。骑士们一进入时空传输机就会被转到另一层的相对位置,但如果被转到的位置是墙的话,那骑士们就会被撞死。骑士们在一层中只能前后左右移动,每移动一格花1时刻。层间的移动只能通过时空传输机,且不需要任何时间。

Input

输入的第一行C表示共有C个测试数据,每个测试数据的前一行有三个整数N,M,T。 N,M迷宫的大小N*M(1 <= N,M <=10)。T如上所意。接下去的前N*M表示迷宫的第一层的布置情况,后N*M表示迷宫第二层的布置情况。

Output

如果骑士们能够在T时刻能找到公主就输出“YES”,否则输出“NO”。

Sample Input

1
5 5 14
S*#*.
.#...
.....
****.
...#.
..*.P
#.*..
***..
...*.
*.#..

Sample Output

YES
dfs
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int n,m,t,p;
char map[4][20][20];
int v[3][20][20];
int yi[4][2]={{1,0},{-1,0},{0,1},{0,-1}};
void dfs(int x,int y,int k,int time)
{if (time>t||p==1) return ;if (map[k%2][x][y]=='P')   {p=1;return ;}int i,rx,ry,a;for (i=0;i<4;i++){a=0;rx=x+yi[i][0];ry=y+yi[i][1];if (map[k%2][rx][ry]=='#') a=1;if (map[(k+a)%2][rx][ry]=='#') continue;if (rx>=0&&rx<n&&ry>=0&&ry<m&&map[(k+a)%2][rx][ry]!='*'&&!v[(k+a)%2][rx][ry]){v[(k+a)%2][rx][ry]=1;dfs(rx,ry,k+a,time+1);v[(k+a)%2][rx][ry]=0;}}
}
int main()
{int c,i,j,k;scanf("%d",&c);while (c--){scanf("%d%d%d",&n,&m,&t);for (k=0;k<2;k++)for (i=0;i<n;i++)for (j=0;j<m;j++) scanf(" %c",&map[k][i][j]);p=0;memset(v,0,sizeof(v));map[0][0][0]='*';dfs(0,0,0,0);if (p) printf("YES\n");else printf("NO\n");}return 0;
}

转载于:https://www.cnblogs.com/pblr/p/4698620.html

HDU-2102 A计划 dfs相关推荐

  1. Aquarius's Trial F - 6 HDU - 2102 A计划

    A计划 Problem Description 可怜的公主在一次次被魔王掳走一次次被骑士们救回来之后,而今,不幸的她再一次面临生命的考验.魔王已经发出消息说将在T时刻吃掉公主,因为他听信谣言说吃公主的 ...

  2. HDU 2102 A计划(广度优先搜索+数据)

    A计划 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submis ...

  3. HDU 2102 A计划

    该题是一道典型的搜索题, #include<stdio.h> #include<stdlib.h> #include<string.h> struct Node { ...

  4. HDU - 2102 A计划(双层BFS)

    题目: 可怜的公主在一次次被魔王掳走一次次被骑士们救回来之后,而今,不幸的她再一次面临生命的考验.魔王已经发出消息说将在T时刻吃掉公主,因为他听信谣言说吃公主的肉也能长生不老.年迈的国王正是心急如焚, ...

  5. 【HDU - 2102】A计划 (麻烦一点的bfs)

    题干: 可怜的公主在一次次被魔王掳走一次次被骑士们救回来之后,而今,不幸的她再一次面临生命的考验.魔王已经发出消息说将在T时刻吃掉公主,因为他听信谣言说吃公主的肉也能长生不老.年迈的国王正是心急如焚, ...

  6. hdu 5325 Crazy Bobo dfs

    // hdu 5325 Crazy Bobo // // 题目大意: // // 给你一棵树,树上每一个节点都有一个权值w,选择尽可能多的节点, // 这些节点相互联通,而且依照权值升序排序之后得到节 ...

  7. HDU 2102 题解(BFS 广度优先搜索 练习题)

    原题链接,但是HDU现在校外提交需要审核 欢迎来 SCPC OJ提交 知识点 : BFS(广搜/宽搜) 原题: 描述: 可怜的公主在一次次被魔王掳走一次次被骑士们救回来之后,而今,不幸的她再一次面临生 ...

  8. hdu 1298 字典树 + DFS (模拟T9文本输入)

    题意:       给你一些按键顺序,让你输出每一步中概率最大的那个单词,这里的概率计算方 法好好看看别弄错了,一开始就是因为弄错了,各种wa,比如 abc 1 ,ab 1,那么 ab 的概率就是2 ...

  9. hdu 4309 最大流 + DFS

    题意:      给以三种有向边     (1) 隧道,可以过无数人,也可以藏c个人.     (2) 路,只能过人(流量INF).     (3)古桥,如果不修理可以过1个人,修理可以过无数个人,但 ...

  10. hdu 1584蜘蛛牌(DFS)

    蜘蛛牌 Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

最新文章

  1. iOS 关闭页面侧滑手势
  2. XXX管理平台系统——项目教训
  3. 深圳腾讯内部Jetpack宝典意外流出!极致经典,堪称Android架构组件的天花板
  4. python2和python3的主要区别
  5. sha256---利用java自带的实现加密
  6. 计算机论文搜索技巧【二】
  7. linux server 5.5下载地址,《红帽Linux 5.5 for x86 服务器版》(RedHat Enterprise Linux Server 5.5 for x86)...
  8. java连接远程带有密码的mongodb数据库
  9. scrapy爬虫框架入门实战
  10. pytorch迁移学习--模型建立的代码实现
  11. Java集合(Collection)综述
  12. 简述Flash 事件机制?
  13. 正则表达式:Javascript
  14. win11官网的预览版系统如何下载安装
  15. gis 数据框裁剪_【更新84篇】地理数据科学技术文章合集,欢迎大家点赞、在看、转发三连!...
  16. centos 关机命令_全了 Linux 常用命令大汇集
  17. 爬虫破解瑞数js逆向动态混淆
  18. 爱普生EPSON实时时钟芯片-RX8900SA
  19. 阶的估计I 无穷小量与强函数2 Taylor公式 基本初等函数与三角函数的阶
  20. python怎么左对齐_python中如何用ljust()实现字符串左对齐?

热门文章

  1. Python3数字格式化代码示例
  2. Linux shell只读变量
  3. MySQL Percona PXC集群实现MySQL主从复制强一致性
  4. 更改git远程分支的方法
  5. Java中字符串以小数点分割时无效,String s = “12.34“; String[] ss = split(“.“);分割结果为空
  6. word2003快速排版工具栏_干货分享 | 闲到在家数瓜子?——先把ID排版秘籍学了吧(上)...
  7. mysql sql执行加载顺序
  8. Python 列表拷贝
  9. 8086指令(II)
  10. Linux高级篇——IO系统编程