hdu 1240 Asteroids!(BFS)
题目链接:点击链接
简单BFS,和二维的做法相同(需注意坐标)
题目大意:三维的空间里,给出起点和终点,“O”表示能走,“X”表示不能走,计算最少的步数
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <queue>
using namespace std;
char map[11][11][11];
int v[11][11][11],d[6][3] = { {1,0,0},{-1,0,0},{0,1,0},{0,-1,0},{0,0,-1},{0,0,1} };
int begin_x,begin_y,begin_z,end_x,end_y,end_z;
int flag,n;
struct node
{
int x,y,z;
int step;
};
void bfs()
{
queue <node> q;
node s,temp;
s.x = begin_x;
s.y = begin_y;
s.z = begin_z;
s.step = 0;
v[s.x][s.y][s.z] = 0;
q.push(s);
while(!q.empty())
{
temp = q.front();
q.pop();
if(temp.x == end_x && temp.y == end_y && temp.z == end_z)
{
printf("%d %d\n",n,temp.step);
flag = 1;
return ;
}
for(int i = 0 ; i < 6 ; i ++)
{
s = temp;
s.x += d[i][0];
s.y += d[i][1];
s.z += d[i][2];
if(s.x < 0 || s.x >= n || s.y < 0 || s.y >= n || s.z < 0 || s.z >= n || map[s.x][s.y][s.z] == 'X')
continue;
s.step ++;
if(s.step < v[s.x][s.y][s.z])
{
v[s.x][s.y][s.z] = s.step;
q.push(s);
}
}
}
}
int main()
{
//freopen("in.txt","r",stdin);
char a[20];
int i,j;
while(~scanf("%s%d",a,&n))
{
for(i = 0 ; i < n ; i ++)
for(j = 0 ; j < n ; j ++)
scanf("%s",map[i][j]);
scanf("%d%d%d",&begin_z,&begin_y,&begin_x);
scanf("%d%d%d",&end_z,&end_y,&end_x);
scanf("%s",a);
memset(v,1,sizeof(v));
flag = 0;
bfs();
if(!flag) printf("NO ROUTE\n");
}
return 0;
}
hdu 1240 Asteroids!(BFS)的更多相关文章
- hdu 1240:Asteroids!(三维BFS搜索)
Asteroids! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total ...
- HDU 1240——Asteroids!(三维BFS)POJ 2225——Asteroids
普通的三维广搜,须要注意的是输入:列,行,层 #include<iostream> #include<cstdio> #include<cstring> #incl ...
- HDU 1104 Remainder (BFS)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1104 题意:给你一个n.m.k,有四种操作n+m,n-m,n*m,n%m,问你最少经过多少步,使得最后 ...
- HDU 1175 连连看(BFS)
连连看 Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- HDU.1495 非常可乐 (BFS)
题意分析 大家一定觉的运动以后喝可乐是一件很惬意的事情,但是seeyou却不这么认为.因为每次当seeyou买了可乐以后,阿牛就要求和seeyou一起分享这一瓶可乐,而且一定要喝的和seeyou一样多 ...
- HDU-1240 Asteroids! (BFS)这里是一个三维空间,用一个6*3二维数组储存6个不同方向
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission ...
- HDU 4707 Pet(BFS)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4707 题目大意:在一个无环的,从0开始发散状的地图里,找出各个距离0大于d的点的个数 Sample I ...
- hdu 1240 Asteroids! (三维bfs)
Asteroids! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...
- hdu 1242 Rescue(bfs)
此刻再看优先队列,不像刚接触时的那般迷茫!这也许就是集训的成果吧! 加油!!!优先队列必须要搞定的! 这道题意很简单!自己定义优先级别! +++++++++++++++++++++++++++++++ ...
随机推荐
- How to configure CDB in Qt Creator(使用VC调试器)
I was having the same problems too, and finally figured out how to solve this. Styne666 gave me a hi ...
- 【HTTP】Fiddler(二) - 使用Fiddler做抓包分析
上文( http://blog.csdn.net/ohmygirl/article/details/17846199 )中已经介绍了Fiddler的原理和软件界面.本文主要针对Fiddler的抓包处理 ...
- boost 轻量级信号量
#include <boost/thread/condition_variable.hpp> #include <boost/thread/mutex.hpp> #in ...
- 页面提交进不了Action的原因
1.进不了action,页面没有任何js报错,可能的原因是数据类型不一致.例如用ajax方式提交所带的参数类型a是String类型,而action中定义的a是Integer类型就会导致这种情况的发生.
- hdu1503
#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #inc ...
- ASP.NET - 使用MqSql数据库
1. 首先需要安装mysql, 脚本之家下载地址: http://www.jb51.net/softs/2193.html 或者去mysql.com官网都可以,一路next,安装好后,有个简单配置,提 ...
- (摘录)ASP.NET提供文件下载函数(支持大文件、续传、速度限制、资源占用小)
// 输出硬盘文件,提供下载 // 输入参数 _Request: Page.Request对象, _Response: Page.Response对象, _fileName: 下载文件名, _full ...
- QQ邮箱中转站文件即将过期时如何转存到微云
今天QQ邮箱提示我的中转站有个文件即将过期,然后我看看了那个文件然后我想永久保存这个文件,腾讯有个微云网盘(好像有10T),想知道能不能保存到微云已变永久保存 结果发现在文件中转站这个界面竟然没有续期 ...
- linux内核系统调用--sendfile函数
在apache,nginx,lighttpd等webserver其中,都有一项sendfile相关的配置,在一些网上的资料都有谈到sendfile会提升文件传输性能,那sendfile究竟是什么呢?它 ...
- 9、Cocos2dx 3.0游戏开发三查找值小工厂方法模式和对象
重开发人员的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/27704153 工厂方法模式 工厂方法是程序设计中一个 ...