A计划 HDU - 2102
A计划
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 34211 Accepted Submission(s):
8412
http://acm.hdu.edu.cn/showproblem.php?pid=2102
现据密探所报,公主被关在一个两层的迷宫里,迷宫的入口是S(0,0,0),公主的位置用P表示,时空传输机用#表示,墙用*表示,平地用.表示。骑士们一进入时空传输机就会被转到另一层的相对位置,但如果被转到的位置是墙的话,那骑士们就会被撞死。骑士们在一层中只能前后左右移动,每移动一格花1时刻。层间的移动只能通过时空传输机,且不需要任何时间。
<= N,M <=10)。T如上所意。接下去的前N*M表示迷宫的第一层的布置情况,后N*M表示迷宫第二层的布置情况。
5 5 14
S*#*.
.#...
.....
****.
...#.
..*.P
#.*..
***..
...*.
*.#..
#include<cstdio>
#include<queue>
#include<cstring>
using namespace std; const int maxn=+;
char map[][maxn][maxn];
int book[][maxn][maxn];
int n,m,c,t,stc,stx,sty,dec,dex,dey,flag;
int nex[][]={{,},{,},{-,},{,-}}; void dfs(int c,int x,int y,int time){
if(c==dec&&x==dex&&y==dey){
if(time<=t){
flag=;
}
return;
}
if(time>t||flag==){
return;
}
for(int i=;i<;i++){
int tx=x+nex[i][];
int ty=y+nex[i][];
if(tx<||tx>n||ty<||ty>m){
continue;
}else if(book[c][tx][ty]==){
if( (c==&&(book[][tx][ty]==||book[][tx][ty]==)) || (c==&&(book[][tx][ty]==||book[][tx][ty]==)) ){
continue;
}else{
if(c==){
book[][tx][ty]=;
dfs(,tx,ty,time+);
book[][tx][ty]=;
}else{
book[][tx][ty]=;
dfs(,tx,ty,time+);
book[][tx][ty]=;
}
}
}else if(book[c][tx][ty]==){
book[c][tx][ty]=;
dfs(c,tx,ty,time+);
book[c][tx][ty]=;
}
}
} int main(){
scanf("%d",&c);
while(c--){
scanf("%d%d%d",&n,&m,&t);
memset(book,,sizeof(book));
for(int i=;i<=;i++){
for(int j=;j<=n;j++){
getchar();
for(int k=;k<=m;k++){
scanf("%c",&map[i][j][k]);
if(map[i][j][k]=='P'){
dec=i,dex=j,dey=k;
}else if(map[i][j][k]=='*'){
book[i][j][k]=;
}else if(map[i][j][k]=='#'){
book[i][j][k]=;
}else if(map[i][j][k]=='S'){
stc=i,stx=j,sty=k;
}
}
}
getchar();
}
flag=;
book[stc][stx][sty]=;
dfs(stc,stx,sty,);
if(flag==){
printf("YES\n");
}else{
printf("NO\n");
}
}
return ;
}
A计划 HDU - 2102的更多相关文章
- I - A计划 HDU - 2102
A计划 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- hdu 2102 A计划
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=2102 A计划 Description 可怜的公主在一次次被魔王掳走一次次被骑士们救回来之后,而今,不幸 ...
- HDU 2102 A计划(两层地图加时间限制加传送门的bfs)
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=2102 A计划 Time Limit: 3000/1000 MS (Java/Others) Me ...
- hdu - 2102 A计划 (简单bfs)
http://acm.hdu.edu.cn/showproblem.php?pid=2102 题目还是不难,注意起点一定是(0,0,0),然后到达P点时间<=t都可以. 用一个3维字符数组存储图 ...
- hdu 2102 A计划(优先队列+dfs)
改了好久,上午来实验室打出来了,运行就是不对,一直找啊找!还是没找到,最后突然停电了,打好的代码还没保存呢! 刚才来的时候又重新打了一遍!!!结果一个小小的错误wrong了好久!!! 在dfs值返回时 ...
- hdu 2102 A计划(双层BFS)(具体解释)
转载请注明出处:http://blog.csdn.net/u012860063?viewmode=contents 题目链接:http://acm.hdu.edu.cn/showproblem.php ...
- [HDU 2102] A计划(搜索题,典型dfs or bfs)
A计划 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- HDU 2102 A计划(BFS/DFS走迷宫)
A计划 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- HDU 2102 A计划(BFS)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2102 题目大意:公主被关在一个两层的迷宫里,迷宫的入口是S(0,0,0),公主的位置用P表示,时空传输 ...
随机推荐
- css实现移动端水平滚动导航
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- keepalived健康检查方式【转】
keepalived具有很强大.灵活的后端检测方式,其具有HTTP_GET|SSL_GET|TCP_CHECK|SMTP_CHECK|MISC_CHECK 几种健康检测方式 ,在分别介绍各种检测方式之 ...
- Android串口通信(Android Studio)
gilhub上已有开源项目: https://github.com/cepr/android-serialport-api 可以直接使用
- Linux -- Centos6 yum安装相关问题与处理
Centos6 yum安装相关问题与处理 由于要使用yum下载文件,突然yum下载不了想要的文件,想更换yum源,结果得重新安装yum 来自本人GitHub地址https://github.com/m ...
- 网络抓包教程之tcpdump
现在的移动端应用几乎都会通过网络请求来和服务器交互,通过抓包来诊断和网络相关的bug是程序员的重要技能之一.抓包的手段有很多:针对http和https可以使用Charles设置代理来做,对于更广泛的协 ...
- hdu3709 数位dp
枚举fix所在的位置loc即可,然后数位dp即可 这题要注意一种特殊情况,就是所有位都是0的时候对于每个fix都是成立的 /* dp[i][j][k]表示前i位确定了平衡点在第j位,前i位和为k fi ...
- vue项目移植tinymce踩坑
转载:https://segmentfault.com/a/1190000012791569?utm_source=tag-newest 2019-2-18 貌似这篇文章帮了大家一些小忙最近tinym ...
- C#学习-子类的初始化顺序
使用了继承之后,当我们初始化一个子类时,除了会调用子类的构造函数外,同时也会调用基类的构造函数. 子类的初始化顺序如下: (1)初始化类的实例字段: (2)调用基类的构造函数: (3)调用子类的构造函 ...
- centos7安装elasticsearch
[root@aaron tools]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.1.zi ...
- <WebGIS之OpenLayers全面解析>示例程序运行问题
运行<WebGIS之OpenLayers全面解析>中的示例程序时,无法加载*.json文件. 查看到提示如下错误:GET http://localhost:11232/demos/data ...