BFS,不过有很多地方需要注意,比如传送机传送到另一个传送机。还有要注意格式。

 #include <iostream>
#include <cstdio>
#include <cstring>
#include <queue>
using namespace std; typedef struct node_st{
int x, y, s, t;
node_st() {}
node_st(int ss, int xx, int yy, int tt) {s=ss;x=xx;y=yy;t=tt;}
} node_st; char map[][][];
char visit[][][];
int direct[][] = {{-,}, {,}, {,-}, {,}};
int n, m, time; bool bfs(int sx, int sy, int ss) {
queue<node_st> nodes;
int x, y, t, s;
bool success = false; memset(visit, , sizeof(visit));
visit[ss][sx][sy] = ;
nodes.push(node_st(ss,sx,sy,)); while ( !nodes.empty() ) {
node_st node = nodes.front();
if (node.t > time)
break;
if (map[node.s][node.x][node.y] == 'P') {
success = true;
break;
}
nodes.pop();
for (int i=; i<; ++i) {
x = node.x + direct[i][];
y = node.y + direct[i][];
s = node.s;
t = node.t + ;
if (visit[s][x][y] || x< || x>=n || y< || y>=m)
continue;
if (map[s][x][y]=='#') {
visit[s][x][y] = ;
s = !s;
if (visit[s][x][y])
continue;
}
if (map[s][x][y]=='#' || map[s][x][y]=='*') {
visit[s][x][y] = ;
} else if (map[s][x][y]=='P' || map[s][x][y]=='.') {
visit[s][x][y] = ;
nodes.push(node_st(s,x,y,t));
}
}
} return success;
} int main() {
int case_n;
int i; scanf("%d", &case_n); while (case_n--) {
scanf("%d %d %d%*c", &n, &m, &time);
for (i=; i<n; ++i)
scanf("%s%*c", map[][i]);
getchar();
for (i=; i<n; ++i)
scanf("%s%*c", map[][i]);
if (bfs(, , ))
printf("YES\n");
else
printf("NO\n");
} return ;
}

【HDOJ】2102 A计划的更多相关文章

  1. hdoj 2102 A计划

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

  2. HDOJ 2102 A计划(bfs)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2102 思路分析: <1>搜索方法分析:由于需要寻找最短的找到公主的路径,所以采用bfs搜索 ...

  3. BFS HDOJ 2102 A计划

    题目传送门 题意:中文题面 分析:双层BFS,之前写过类似的题.总结坑点: 1.步数小于等于T都是YES 2. 传送门的另一侧还是传送门或者墙都会死 3. 走到传送门也需要一步 #include &l ...

  4. hdu 2102 A计划

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=2102 A计划 Description 可怜的公主在一次次被魔王掳走一次次被骑士们救回来之后,而今,不幸 ...

  5. hdoj 2102 A计画 【BFS】

    称号:hdoj 2102 A计画点击打开链接 意甲冠军:文的就不说了.求救出公主所须要的最短时间,所以用广搜. 分析:读题之后不难做,比一般的题目多了一个条件就是能够传送,那么我们能够在广搜里面加一个 ...

  6. HDU 2102 A计划(两层地图加时间限制加传送门的bfs)

    传送门: http://acm.hdu.edu.cn/showproblem.php?pid=2102 A计划 Time Limit: 3000/1000 MS (Java/Others)    Me ...

  7. hdu - 2102 A计划 (简单bfs)

    http://acm.hdu.edu.cn/showproblem.php?pid=2102 题目还是不难,注意起点一定是(0,0,0),然后到达P点时间<=t都可以. 用一个3维字符数组存储图 ...

  8. hdu 2102 A计划(优先队列+dfs)

    改了好久,上午来实验室打出来了,运行就是不对,一直找啊找!还是没找到,最后突然停电了,打好的代码还没保存呢! 刚才来的时候又重新打了一遍!!!结果一个小小的错误wrong了好久!!! 在dfs值返回时 ...

  9. hdu 2102 A计划(双层BFS)(具体解释)

    转载请注明出处:http://blog.csdn.net/u012860063?viewmode=contents 题目链接:http://acm.hdu.edu.cn/showproblem.php ...

随机推荐

  1. Java的基础概念

    JDK (Java Development Kit) Java Developer Kit contains tools needed to develop the Java programs, an ...

  2. iOS-Reachability的使用

    // 下载地址:http://pan.baidu.com/s/1gd5NNDD   // 1. 添加Reachability.h和Reachibility.m文件到项目中 // 2. 添加System ...

  3. Oracle每10天删除数据,并重建索引

    declare datDateFrom date := to_date('2010/08/01 00:00:00','yyyy/mm/dd hh24:mi:ss'); datDateTo date; ...

  4. MVC3中 swfupload 按钮不显示 解决方案

    这两天在做图片上传并显示的功能,之前就用过swfupload,觉得很不错,之前是用asp.net webform做的,这次的项目是用asp.net MVC3来做,视图引擎用的是Razor. 将js文件 ...

  5. 在Windows下用MingW 4.5.2编译live555

    1.下载live555(http://www.live555.com/liveMedia/public/),解压. 2.进入MingW Shell,输入cd: F:/Qt/live(假定解压到F:/Q ...

  6. T-SQL

    今天继续数据库知识的梳理.接下来的主要内容是T-SQL,针对的数据库是SQL Server 2008. 几个术语 数据定义语言(DDL,Data Definition Language):用来建立数据 ...

  7. AJAX安全-Session做Token

    个人思路,请大神看到了指点 个人理解token是防止扫号机或者恶意注册.恶意发表灌水,有些JS写的token算法,也会被抓出来被利用,个人感觉还是用会过期的Session做token更好,服务器存储, ...

  8. Android AndroidManifest学习笔记

    <application>标签 : android:allowBackup="true" 数据可以备份 <activity>标签:configChanges ...

  9. SQL技术内幕四

    数据类型: sql server只接受两种数据类型 1. 普通字符 varchar char 用一个字节表示一个字符,表示英文 2.unicode   nchar nvarchar 用两个字节表示一个 ...

  10. 使用ajaxFileUpload实现异步上传图片

    index.html <head runat="server"> <title></title> <script src="jq ...