HDU 1240
#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的更多相关文章
- hdu - 1240 Nightmare && hdu - 1253 胜利大逃亡(bfs)
http://acm.hdu.edu.cn/showproblem.php?pid=1240 开始没仔细看题,看懂了发现就是一个裸的bfs,注意坐标是三维的,然后每次可以扩展出6个方向. 第一维代表在 ...
- hdu 1240:Asteroids!(三维BFS搜索)
Asteroids! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total ...
- HDU 1240 Asteroids! 解题报告
//这道题做完我只有 三个感受 第一:坑: 第二 : 坑! 第三:还是坑! 咳咳 言归正传 WA了无数次之后才发现是输入进去时坐标时z, y, x的顺序输入的 题解 : 类似胜利大逃亡 只 ...
- HDU 1240 (简单三维广搜) Asteroids!
给出一个三维的迷宫以及起点和终点,求能否到大终点,若果能输出最短步数 三维的问题无非就是变成了6个搜索方向 最后强调一下xyz的顺序,从输入数据来看,读入的顺序是map[z][x][y] 总之,这是很 ...
- hdu 1240 Asteroids! (三维bfs)
Asteroids! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...
- HDU 1240 Asteroids!
三维广搜 #include <cstdio> #include <iostream> #include <cstring> #include <queue&g ...
- HDU 1240——Asteroids!(三维BFS)POJ 2225——Asteroids
普通的三维广搜,须要注意的是输入:列,行,层 #include<iostream> #include<cstdio> #include<cstring> #incl ...
- hdu 1240 Asteroids!(BFS)
题目链接:点击链接 简单BFS,和二维的做法相同(需注意坐标) 题目大意:三维的空间里,给出起点和终点,“O”表示能走,“X”表示不能走,计算最少的步数 #include <iostream&g ...
- HDU 1240 Asteroids!(BFS)
题目链接 Problem Description You're in space.You want to get home.There are asteroids.You don't want to ...
- hdu 1240 3维迷宫 求起点到终点的步数 (BFS)
题意,给出一个N,这是这个三空间的大小,然后给出所有面的状况O为空地,X为墙,再给出起始点的三维坐标和终点的坐标,输出到达的步数 比较坑 z是x,x是y,y是z,Sample InputSTART 1 ...
随机推荐
- javaweb中的三个域
1.Request域 程序产生数据,显示完了就没用了,就用这个域. 2.Session域 程序产生数据,出了显示用,待会还要用,就用这个域. 3.ServletContext域 程序产生数据,数据显示 ...
- BZOJ 1037 生日聚会 DP
[ZJOI2008]生日聚会Party Time Limit: 10 Sec Memory Limit: 162 MB Description 今天是hidadz小朋友的生日,她邀请了许多朋友来参加她 ...
- 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 ...
- bootstrap 网格布局
一:基本的网格布局 <div class="container"> <div class="row"> <div class=&q ...
- JavaScript变量提升及作用域
今天在知乎看前端面试题的时候,看到这样的问题,发现自己懂的真的是太少了,看了给的例子,所以写一下自己的理解. 首先放一段代码: var v= “hello JavaScript”; alert(v); ...
- 常用SQL函数
—————常用SQL函数(实例简述)————— 数据库环境:DB2数据库: 执行工具:Toad for DB2 1.转字符串:to_char() 日期类型:to_char(birthday,'yyy ...
- AdaBoost--从原理到实现(Code:Python)
本文对原文有修改,若有疑虑,请移步原作者. 原文链接:blog.csdn.net/dark_scope/article/details/14103983 集成方法在函数模型上等价于一个多层神经网络, ...
- ANN:DNN结构演进History—RNN
前言: CNN在图像处理领域的极大成功源于CNN的二维递进映射结构,通过训练多层卷积核来进行特征提取函数训练,在二维图像的稀疏表达和语义关联分析方面有天生的结构优势.而涉及时序问题的逻辑序列分析-边长 ...
- Tinyxml2学习
转自http://www.360doc.com/content/13/1223/16/3684846_339528825.shtml,尊重原文 什么是XML? XML全称EXtensible Mark ...
- Centos6.6 安装Subversion服务
一.介绍 Subversion 简称就是svn服务器,用来托管代码的,类似的还有git 1)Centos6.6 2)Subversion 二.安装 yum -y install subversion ...