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 ...
随机推荐
- 协同过滤算法中皮尔逊相关系数的计算 C++
template <class T1, class T2>double Pearson(std::vector<T1> &inst1, std::vector<T ...
- HTML中的文本框textarea标签
转自:https://www.jb51.net/web/183411.html <textarea></textarea>用来创建一个可以输入多行的文本框,此标志对用于< ...
- HTTP权威协议笔记-9.Web机器人
经过整个春节的放肆,终于回归了,说实话,春节真心比上班累. 9.1 爬虫及爬行方式 (1) 爬虫:Web爬虫是一种机器人,他们会递归性的对各种信息Web站点进行遍历. (2) 爬行方式:Web机器人会 ...
- css 浮动问题详解
浮动(float),一个我们即爱又恨的属性.爱,因为通过浮动,我们能很方便地布局: 恨,浮动之后遗留下来太多的问题需要解决,特别是IE6-7(以下无特殊说明均指 windows 平台的 IE浏览器). ...
- 使用maven搭建SSH框架实现登陆、列表查询分页
SSH框架:struts2 + spring + hibernate web层:struts2+jsp service层:javaBean dao层:hibernate spring:管理Action ...
- Inception搭建
Inception安装Inception是集审核.执行.回滚于一体的一个自动化运维系统,它是根据MySQL代码修改过来的,用它可以很明确的,详细的,准确的审核MySQL的SQL语句,它的工作模式和My ...
- SQL Server存储过程作业(三)
阶段4:练习——插入入住客人记录 需求说明 使用存储过程将入住客人信息插入客人信息表中,要求: 检查身份证号必须是18个字符组成 押金的默认值为1000元 如果客人记录插入成功,输出客人流水号:否则输 ...
- 请不要继续使用VC6.0了!
很多次和身边的同学交流,帮助同学修改代码,互相分享经验,却发现同学们依然在使用老旧的VC6.0作为编程学习的软件,不由得喊出:“请不要继续使用VC6.0了!”. VC6.0作为当年最好的IDE(集成开 ...
- c#动态类型Dynamic
需引用System.Dynamic命名空间 来源:http://www.cnblogs.com/ryanding/archive/2010/12/09/1900106.html dynamic Cus ...
- C# 前一个数是后一个数的父级
private void button2_Click(object sender, EventArgs e) { var str = "1 2 3 4 5 6 7 8 9 10 11 12 ...