hdu 2102
简单的3维BFS
大写的YES和NO,这心粗的....唉
#include<iostream>
#include<cstdio>
#include<queue> using namespace std; char map[2][12][12];
int d[2][3];
int dir[4][2]={0,1,0,-1,-1,0,1,0};
int n,m,t; struct node{
int x,y,z;
int step;
}; int bfs(){
queue<node>q;
node cur,next;
cur.z=d[0][0];
cur.x=d[0][1];
cur.y=d[0][2];
cur.step=t;
q.push(cur);
while(!q.empty()){
cur=q.front();
q.pop();
if(cur.z==d[1][0]&&cur.x==d[1][1]&&cur.y==d[1][2]){
if(cur.step>=0)
return 1;
return 0;
}
for(int i=0;i<4;i++){
next.x=dir[i][0]+cur.x;
next.y=dir[i][1]+cur.y;
next.z=cur.z;
if(map[next.z][next.x][next.y]=='#'){
if(next.z)
next.z=0;
else
next.z=1;
}
if(next.x>=0&&next.x<n&&next.y>=0&&next.y<m&&map[next.z][next.x][next.y]!='*'){
next.step=cur.step-1;
map[next.z][next.x][next.y]='*';
q.push(next);
}
}
}
return 0;
} int main(){
//freopen("2102.in", "r", stdin);
int c,i,j,k;
cin>>c;
while(c--){
cin>>n>>m>>t;
for(i=0;i<2;i++){
for(j=0;j<n;j++){
scanf("%s",map[i][j]);
for(k=0;k<m;k++){
if(map[i][j][k]=='S'){
d[0][0]=i;
d[0][1]=j;
d[0][2]=k;
}
else if(map[i][j][k]=='P'){
d[1][0]=i;
d[1][1]=j;
d[1][2]=k;
}
else if(i&&map[i][j][k]=='*'&&map[0][j][k]=='#') //2层是墙,不能传过来
map[0][j][k]='*';
else if(i&&map[i][j][k]=='#'&&(map[0][j][k]=='#'||map[0][j][k]=='*')){
map[0][j][k]='*'; //2层是传送机
map[1][j][k]='*';
}
}
}
}
if(bfs())
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
return 0;
}
hdu 2102的更多相关文章
- 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 题目还是不难,注意起点一定是(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 ...
- A计划 HDU - 2102
A计划 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- HDU 2102 A计划(BFS)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2102 题目大意:公主被关在一个两层的迷宫里,迷宫的入口是S(0,0,0),公主的位置用P表示,时空传输 ...
- HDU 2102 A计划(两层地图加时间限制加传送门的bfs)
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=2102 A计划 Time Limit: 3000/1000 MS (Java/Others) Me ...
- [hdu 2102]bfs+注意INF
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2102 感觉这个题非常水,结果一直WA,最后发现居然是0x3f3f3f3f不够大导致的……把INF改成I ...
- HDU - 2102 A计划 【BFS】
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2102 思路 题目有两个坑点 0.Output 说 能在T时刻 找到公主 就输出 YES 但实际上 只要 ...
- hdu 2102 A计划 具体题解 (BFS+优先队列)
题目链接:pid=2102">http://acm.hdu.edu.cn/showproblem.php?pid=2102 这道题属于BFS+优先队列 開始看到四分之中的一个的AC率感 ...
随机推荐
- SqlSever基础 union 联合查询,厉害的并集 重复项只显示一个 两个查询结果并在一起后排序
镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...
- MySql中使用日期函数获取昨天的数据
.body-classic{ color:#444; font-family:Georgia, Palatino, 'Palatino Linotype', Times, 'Times New Rom ...
- pivot 与 unpivot 函数是SQL05新提供的2个函数 灰常灰常的实用
转自:http://blog.sina.com.cn/s/blog_5ef755720100cyo3.html pivot函数: create table test(id int,name varch ...
- SQLServer: 解决“错误15023:当前数据库中已存在用户或角色
解决SQL Server 2008 错误15023:当前数据库中已存在用户或角色,SQLServer2008,错误15023, 在使用SQL Server 2008时,我们经常会遇到一个情况:需要把一 ...
- JBOSS批量扫描
exploit-db提供出了EXP,如下: /* * JBoss JMXInvokerServlet Remote Command Execution * JMXInvoker.java v0.3 - ...
- 屏幕 Dynpro
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- TestNg测试框架使用笔记
Gradle支持TestNG test { useTestNG(){ //指定testng配置文件 suites(file('src/test/resources/testng.xml')) } } ...
- installing a 3D printer
托公司的福,今天可以自己组装一台3D打印机.心里颇有一种开箱有益的兴奋. 落入手中的是一台Panowin F1,价格不贵,却同时拥有了3D打印功能和激光打印功能.颇有一种小型创客作坊的雏形. 硬件搭建 ...
- Maven常用命令(转)
Maven库: http://repo2.maven.org/maven2/ Maven依赖查询: http://mvnrepository.com/ Maven常用命令: 1. 创建Maven的普通 ...
- iOS - Swift Swift 语言新特性
1.Swift 2.0 带来哪些新变化 常规变化: 1.OS X 10.11.iOS 9 和 watchOS 2 SDK 采纳了一些 Objective-C 的特性用来提高 Swift 的编程体验, ...