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率感 ...
随机推荐
- Android 中 Service AIDL使用
1.创建两个项目创建两个.aidl文件 2.在传递值的类里面创建Service并且返回接口: 服务返回值onBind public IBinder onBind(Intent intent) ...
- Shared Preferences 数据存储
SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数. 其背后是用xml文件存放数据,文件存放在/data/data/<package name>/s ...
- Java开发中经典的小实例-(随机数)
import java.util.Random;//输出小于33的7个不相同的随机数public class probability { static Random random = new R ...
- 在服务器上log4net没写日志
登录到服务器上,发现log4net没写日志 在相应文件夹加上User用户的写权限后恢复正常了.
- POJ 3069 Saruman's Army(萨鲁曼军)
POJ 3069 Saruman's Army(萨鲁曼军) Time Limit: 1000MS Memory Limit: 65536K [Description] [题目描述] Saruman ...
- Linux简介与厂商版本
Linux简介与厂商版本 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 1. Linux简介 Linux可以有狭义和广义两种 ...
- 不同浏览器对document.documentElement和document.body的scrollheight ,scrollTop,clientHeight以及判断滚动条是否滚动到页面最底部 【转载】
前段时间学习怎么写一个瀑布流的时候,就接触到document.documentElement和document.body的区别,然后今天查资料的时候看到这篇博客,遂转载记录在此. 两种特殊的文档属性可 ...
- weblogic启动报错
重启了一次linux服务器后,weblogic启动莫名报错,查看日志发现说部署的项目有个bean类无法加载, 1.然后手动删除 已经部署的项目,先在 domais/servers/AdminServe ...
- [poj2785]4 Values whose Sum is 0(hash或二分)
4 Values whose Sum is 0 Time Limit: 15000MS Memory Limit: 228000K Total Submissions: 19322 Accepted: ...
- MonkeyRunner学习(3)脚本编辑
除了cmd直接操作手机,也可以编辑好脚本后,运行脚本,一次操作多个脚本命令 a) 新建py格式脚本,如iReader.py b) 编辑脚本 #导入模块 from com.android.monkeyr ...