【HDOJ】2102 A计划
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计划的更多相关文章
- hdoj 2102 A计划
A计划 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- HDOJ 2102 A计划(bfs)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2102 思路分析: <1>搜索方法分析:由于需要寻找最短的找到公主的路径,所以采用bfs搜索 ...
- BFS HDOJ 2102 A计划
题目传送门 题意:中文题面 分析:双层BFS,之前写过类似的题.总结坑点: 1.步数小于等于T都是YES 2. 传送门的另一侧还是传送门或者墙都会死 3. 走到传送门也需要一步 #include &l ...
- hdu 2102 A计划
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=2102 A计划 Description 可怜的公主在一次次被魔王掳走一次次被骑士们救回来之后,而今,不幸 ...
- hdoj 2102 A计画 【BFS】
称号:hdoj 2102 A计画点击打开链接 意甲冠军:文的就不说了.求救出公主所须要的最短时间,所以用广搜. 分析:读题之后不难做,比一般的题目多了一个条件就是能够传送,那么我们能够在广搜里面加一个 ...
- 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 ...
随机推荐
- 虚拟光驱 DAEMON Tools Lite ——安装与入门
DAEMON Tools Lite 是什么?它不仅仅是虚拟光驱.是的,你可以使用它制作.加载光盘映像,但是 DAEMON Tools 产品那么多,Lite版与其他版本究竟有什么不同呢?或者说,是什么让 ...
- C++ const修饰函数、函数参数、函数返回值
const修饰函数 在类中将成员函数修饰为const表明在该函数体内,不能修改对象的数据成员而且不能调用非const函数.为什么不能调用非const函数?因为非const函数可能修改数据成员,cons ...
- 【转】使用DevExpress的WebChartControl控件绘制图表(柱状图、折线图、饼图)
第一次写博,没什么经验,主要是把最近自己对Dev的一些研究贴出来大家共同探讨,有不足之处望大家帮忙斧正. WebChartControl是DevExpress控件群下的一个Web图表控件,它使用非常的 ...
- JavaScript的语法要点 1 - Lexically Scoped Language
作为从一开始接触C.C++.C#的程序员而言,JavaScript的语法对我来说有些古怪,通过最近一年的接触,对它有了一定的了解,于是想把它的一些语法要点记录下来. 1. Block Scope vs ...
- NOSQL之【WIN7的安装配置】
1.下载安装 大家根据各自系统配置,下载相对应的redis版本.我下载是redis 2.6 将redis.conf 复制到 bin/release/redisbin 里面 redis-server.e ...
- 使用PHP导出Word文档的原理和实例
PHP操作Word文档的方法有很多,这里再为大家提供一种方法. 原理 一般,有2种方法可以导出doc文档,一种是使用com,并且作为php的一个扩展库安装到服务器上,然后创建一个com,调用它的方 ...
- [PHP]MemCached高级缓存
Memcache Win32 的安装下载:Memcache Win32 [www.php100.com] [www.jehiah.cz/projects/memcached-win32/] 1.解 ...
- phpcms v9后台多表查询分页代码
phpcms v9里面自带的listinfo分页函数蛮好用的,可惜啊.不支持多表查询并分页. 看了一下前台模板层支持get标签,支持多表查询,支持分页.刚好可以把这个功能搬到后台来使用. 我们现在对g ...
- (转载)SQL中导入图片
SQL中导入图片 分类: 论坛精贴 2006-05-10 12:07 398人阅读 评论(0) 收藏 举报 sqlimage服务器insertlogingo 1.建立过程CREATE PROCEDUR ...
- Delphi中判断WebBrowser的页面是否加载完成
方法一: 在WebBrowser的OnDocumentComplete事件书写代码. 方法二: WebBrowser1.Navigate(Url); while WebBrowser1.Busy or ...