#include <iostream>
#include <cstdio>
using namespace std; const int MAX=; char maze[MAX][MAX][MAX]; struct {
int i,j,k;
}beg,des,que[],tmp,pushed;
int f,l;
char str[],n;
bool vis[MAX][MAX][MAX];
int dir[][]={,,,-,,,,,,,-,,,,,,,-}; bool ok(int i,int j,int k){
if(i<||i>=n||j<||j>=n||k<||k>=n||vis[i][j][k]||maze[i][j][k]=='X')
return false;
return true;
} bool bfs(){
int step=; int ti,tj,tk;
bool flag=false;
while(f<l){
int size=l-f;
step++;
while(size--){
tmp=que[f++];
if(tmp.i==des.i&&tmp.j==des.j&&tmp.k==des.k){
flag=true;
break;
}
for(int i=;i<;i++){
ti=tmp.i+dir[i][];
tj=tmp.j+dir[i][];
tk=tmp.k+dir[i][];
if(ok(ti,tj,tk)){
vis[ti][tj][tk]=true;
pushed.i=ti; pushed.j=tj; pushed.k=tk;
que[l++]=pushed;
}
}
}
if(flag) break;
}
if(flag){
printf("%d %d\n",n,step-);
return true;
}
return false;
} int main(){
while(scanf("%s %d",str,&n)!=EOF){
for(int i=;i<n;i++){
for(int j=;j<n;j++)
cin>>maze[i][j];
}
// cout<<"NO"<<endl;
scanf("%d%d%d",&beg.j,&beg.k,&beg.i);
scanf("%d%d%d",&des.j,&des.k,&des.i);
cin>>str;
// cout<<"YES"<<endl;
memset(vis,false,sizeof(vis));
f=l=;
if(beg.i==des.i&&beg.j==des.j&&beg.k==des.k){
printf("%d 0\n",n);
continue;
}
vis[beg.i][beg.j][beg.k]=true;
que[l++]=beg;
if(!bfs())
printf("NO ROUTE\n");
}
return ;
}

HDU 1240的更多相关文章

  1. hdu - 1240 Nightmare && hdu - 1253 胜利大逃亡(bfs)

    http://acm.hdu.edu.cn/showproblem.php?pid=1240 开始没仔细看题,看懂了发现就是一个裸的bfs,注意坐标是三维的,然后每次可以扩展出6个方向. 第一维代表在 ...

  2. hdu 1240:Asteroids!(三维BFS搜索)

    Asteroids! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...

  3. HDU 1240 Asteroids! 解题报告

    //这道题做完我只有 三个感受  第一:坑: 第二 : 坑! 第三:还是坑! 咳咳  言归正传  WA了无数次之后才发现是输入进去时坐标时z, y, x的顺序输入的 题解   :  类似胜利大逃亡 只 ...

  4. HDU 1240 (简单三维广搜) Asteroids!

    给出一个三维的迷宫以及起点和终点,求能否到大终点,若果能输出最短步数 三维的问题无非就是变成了6个搜索方向 最后强调一下xyz的顺序,从输入数据来看,读入的顺序是map[z][x][y] 总之,这是很 ...

  5. hdu 1240 Asteroids! (三维bfs)

    Asteroids! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total ...

  6. HDU 1240 Asteroids!

    三维广搜 #include <cstdio> #include <iostream> #include <cstring> #include <queue&g ...

  7. HDU 1240——Asteroids!(三维BFS)POJ 2225——Asteroids

    普通的三维广搜,须要注意的是输入:列,行,层 #include<iostream> #include<cstdio> #include<cstring> #incl ...

  8. hdu 1240 Asteroids!(BFS)

    题目链接:点击链接 简单BFS,和二维的做法相同(需注意坐标) 题目大意:三维的空间里,给出起点和终点,“O”表示能走,“X”表示不能走,计算最少的步数 #include <iostream&g ...

  9. HDU 1240 Asteroids!(BFS)

    题目链接 Problem Description You're in space.You want to get home.There are asteroids.You don't want to ...

  10. hdu 1240 3维迷宫 求起点到终点的步数 (BFS)

    题意,给出一个N,这是这个三空间的大小,然后给出所有面的状况O为空地,X为墙,再给出起始点的三维坐标和终点的坐标,输出到达的步数 比较坑 z是x,x是y,y是z,Sample InputSTART 1 ...

随机推荐

  1. javaweb中的三个域

    1.Request域 程序产生数据,显示完了就没用了,就用这个域. 2.Session域 程序产生数据,出了显示用,待会还要用,就用这个域. 3.ServletContext域 程序产生数据,数据显示 ...

  2. BZOJ 1037 生日聚会 DP

    [ZJOI2008]生日聚会Party Time Limit: 10 Sec Memory Limit: 162 MB Description 今天是hidadz小朋友的生日,她邀请了许多朋友来参加她 ...

  3. SHRINK SPACE Command : Online Segment Shrink for Tables, LOBs and IOTs

    ORACLE-BASE - ALTER TABLE ... SHRINK SPACE Command : Online Segment Shrink for Tables, LOBs and IOTs ...

  4. bootstrap 网格布局

    一:基本的网格布局 <div class="container"> <div class="row"> <div class=&q ...

  5. JavaScript变量提升及作用域

    今天在知乎看前端面试题的时候,看到这样的问题,发现自己懂的真的是太少了,看了给的例子,所以写一下自己的理解. 首先放一段代码: var v= “hello JavaScript”; alert(v); ...

  6. 常用SQL函数

    —————常用SQL函数(实例简述)————— 数据库环境:DB2数据库: 执行工具:Toad for  DB2 1.转字符串:to_char() 日期类型:to_char(birthday,'yyy ...

  7. AdaBoost--从原理到实现(Code:Python)

    本文对原文有修改,若有疑虑,请移步原作者.  原文链接:blog.csdn.net/dark_scope/article/details/14103983 集成方法在函数模型上等价于一个多层神经网络, ...

  8. ANN:DNN结构演进History—RNN

    前言: CNN在图像处理领域的极大成功源于CNN的二维递进映射结构,通过训练多层卷积核来进行特征提取函数训练,在二维图像的稀疏表达和语义关联分析方面有天生的结构优势.而涉及时序问题的逻辑序列分析-边长 ...

  9. Tinyxml2学习

    转自http://www.360doc.com/content/13/1223/16/3684846_339528825.shtml,尊重原文 什么是XML? XML全称EXtensible Mark ...

  10. Centos6.6 安装Subversion服务

    一.介绍 Subversion 简称就是svn服务器,用来托管代码的,类似的还有git 1)Centos6.6 2)Subversion 二.安装 yum -y install subversion ...