博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 2102 A计划( bfs)
阅读量:5284 次
发布时间:2019-06-14

本文共 2357 字,大约阅读时间需要 7 分钟。

A计划

Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 13741    Accepted Submission(s): 3415

Problem 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
 

 

Source
 
这题目搞得我excited啊...
写了半天...结果是题意理解错了...
误以为到达传送点,是否传送是可以选择的...
然而"
骑士们一进入时空传输机就会被转到另一层的相对位置
是说只要到达传送位置就一定会被传送...
那么如果传送过去是石头,会死,那一定就不走到这个传送机,也就是这个传送机相当于障碍物.
如果传送过去还是传送机,由于传送不可选择,就会进入死循环.那么这个传送机也相当于障碍物.
其他的就没什么了...
注意恰好话时间t也是算可以营救的...样例就是恰好.
1 /*************************************************************************  2     > File Name: code/hdu/2102.cpp  3     > Author: 111qqz  4     > Email: rkz2013@126.com   5     > Created Time: 2015年10月02日 星期五 09时43分07秒  6  ************************************************************************/  7   8 #include
9 #include
10 #include
11 #include
12 #include
13 #include
14 #include
15 #include
16 #include
17 #include
18 #include
19 #include
20 #include
21 #define y1 hust111qqz 22 #define yn hez111qqz 23 #define j1 cute111qqz 24 #define ms(a,x) memset(a,x,sizeof(a)) 25 #define lr dying111qqz 26 using namespace std; 27 #define For(i, n) for (int i=0;i
=n||y>=m) return false; 44 if (vis[z][x][y]) return false; 45 if (maze[z][x][y]=='*') return false; 46 if (maze[z][x][y]=='#'&&(maze[z^1][x][y]=='#'||maze[z^1][x][y]=='*'||vis[z^1][x][y])) return false; 47 return true; 48 } 49 50 }; 51 node s; 52 bool bfs() 53 { 54 s.x = 0 ; 55 s.y = 0; 56 s.z = 0; 57 s.d = 0 ; 58 queue
q; 59 q.push(s); 60 vis[0][0][0] = true; 61 while (!q.empty()) 62 { 63 node pre; 64 pre = q.front(); 65 q.pop(); 66 char tmp = maze[pre.z][pre.x][pre.y]; 67 // cout<
<<" "<
<<" "<
<
View Code

 

 
 

转载于:https://www.cnblogs.com/111qqz/p/4852198.html

你可能感兴趣的文章
ubuntu 12.04 JDK和JVM配置,浏览器执行Applet
查看>>
【转】hibernate annotation方式配置实体关联关系,解决关联外键数据不存在时抛出异常的问题...
查看>>
分享35个讨人喜欢的漂亮进度条UI设计
查看>>
Visual Studion 2013 HTML 如何打开设计图
查看>>
TensorFlow 卷积神经网络--卷积层
查看>>
android studio 注释模板
查看>>
pots(bfs)
查看>>
《JAVA高并发编程详解》-类的加载过程简介
查看>>
数据库索引原理及优化
查看>>
2015年开源项目荣登GitHub十强榜单
查看>>
排序(杭电1106)
查看>>
《生活在Linux中》之:在Bash的Emacs模式中使用Vim
查看>>
反向代理和正向代理
查看>>
深入了解ASO
查看>>
python连接mysql数据库
查看>>
vim的基本操作
查看>>
owncloud 实现私有云进行多端文件同步
查看>>
Android学习第一课
查看>>
Android多线程断点续传下载
查看>>
Hadoop0.20.2 Bloom filter应用演示样例
查看>>