//这道题做完我只有 三个感受  第一:坑; 第二 : 坑! 第三:还是坑!

咳咳  言归正传  WA了无数次之后才发现是输入进去时坐标时z, y, x的顺序输入的

题解   :  类似胜利大逃亡 只不过给你了起始坐标和终点坐标, 让你输出到达目标点所需最少步数;

输出时第一个输出时是START读入的map大小值n;第二个是所求步数

//细节:

1.读入:   读入时分别两次%S把没用的START 和 END读取掉;

2.输出时输出 三维坐标大小值n, 以及步数;

3.输入进去时开始点和结束点坐标都是z, y, x的顺序输入的!!!!!!!多加感叹号 因为这是这道题最坑的地方。

代码奉上:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#define N 15
using namespace std;

typedef struct node
{
int x, y, z;
int step;
}ND;

ND s, e;
int dir[6][3] = {0,0,1, 0,1,0, 1,0,0, 0,0,-1, 0,-1,0, -1,0,0};
char maps[N][N][N];
char str[10];
int n;

void inPut()
{
int i, j;
for(i = 0; i < n; i++)
for(j = 0; j < n; j++)
scanf("%s", maps[i][j]);

scanf("%d %d %d", &s.z, &s.y, &s.x);
scanf("%d %d %d", &e.z, &e.y, &e.x);
scanf("%s", str);
}

void BFS()
{
int x, y, z, i;
ND v;
maps[s.x][s.y][s.z] = 'X';

queue<ND>q;
q.push(s);

while(!q.empty())
{
s = q.front();
q.pop();
if(s.x == e.x && s.y == e.y && s.z == e.z)
{
printf("%d %d\n", n, s.step);
return;
}
for(i = 0; i < 6; i++)
{
x = s.x + dir[i][0];
y = s.y + dir[i][1];
z = s.z + dir[i][2];
if(x >= 0 && x < n && y >= 0 && y < n && z >= 0 && z < n && maps[x][y][z] == 'O')
{
maps[x][y][z] = 'X';
v = {x, y, z, s.step + 1};
q.push(v);
}
}
}

printf("NO ROUTE\n");
}

int main()
{
while(scanf("%s%d", str, &n) != EOF)
{
memset(maps, 0, sizeof(maps));
inPut();
BFS();
}
}

HDU 1240 Asteroids! 解题报告的更多相关文章

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

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

  2. Bestcoder13 1003.Find Sequence(hdu 5064) 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5064 题目意思:给出n个数:a1, a2, ..., an,然后需要从中找出一个最长的序列 b1, b ...

  3. hdu 1896.Stones 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1896 题目意思:给出 n 块石头的初始位置和能到达的距离.对于第奇数次遇到的石头才抛掷,偶数次的就忽略 ...

  4. Valentine's Day Round 1001.Ferries Wheel(hdu 5174)解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5174 题目意思:给出 n 个人坐的缆车值,假设有 k 个缆车,缆车值 A[i] 需要满足:A[i−1] ...

  5. BestCoder27 1001.Jump and Jump... (hdu 5162) 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5162 题目意思:有 n 个 kid,每个 kid 有三个成绩 a, b, c.选最大的一个成绩作为这个 ...

  6. BestCoder27 1002.Taking Bus(hdu 5163) 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5163 题目意思:有 n 个车站,给出相邻两个车站的距离,即车站 i 和车站 i+1 的距离为 di ( ...

  7. BestCoder25 1001.Harry and Magical Computer(hdu 5154) 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5154 题目意思:有 n 门 processes(编号依次为1,2,...,n),然后给出 m 种关系: ...

  8. BestCoder14 1002.Harry And Dig Machine(hdu 5067) 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5067 题目意思:给出一个 n * m 的方格,每一个小方格(大小为1*1)的值要么为 0 要么为一个正 ...

  9. hdu 1425 sort 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1425 常规的方法是对输入的数从大到小进行排序(可以用sort或qsort),然后输出前m大的数. 不过 ...

随机推荐

  1. 三维高斯模型 opencv实现

    OnProbabilityModel() { int i; for(int x=0;x<workImg->height;x++) { for(int y=0;y<workImg-&g ...

  2. 多列布局——column-width

    column-width的使用和CSS中的width属性一样,不过不同的是,column-width属性在定义元素列宽的时候,既可以单独使用,也可以和多列属性中其他属性配合使用.其基本语法如下所示 : ...

  3. 设计模式_11_原型模式(prototype)深拷贝、浅拷贝

    设计模式_11_原型模式(prototype) 浅拷贝: package designPatternOf23; /** * 定义:用原型实例,指定创建对象的种类,并通过拷贝这些原型创建新的对象 * P ...

  4. HDU 1258 Sum It Up

    Sum It Up Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total S ...

  5. php递归无限极分类实例

    无限级分类原理简介 无限分类看似"高大上",实际上原理是非常简单的 .无限分类不仅仅需要代码的巧妙性,也要依托数据库设计的合理性.要满足无限级分类,数据库需要有两个必须的字段,id ...

  6. iOS界面开发

    [转载] iOS界面开发 发布于:2014-07-29 11:49阅读数:13399 iOS 8 和 OS X 10.10 中一个被强调了多次的主题就是大一统,Apple 希望通过 Hand-off ...

  7. configure.ac:32: error: possibly undefined macro: AC_DEFINE

    在ubuntu 下编译snappy时,在检查依赖关系时,处理autoconf的包时,在相关依赖包都已经安装的情况下,报如下错误,死活不过. configure.ac:32: error: possib ...

  8. python实现动态更新远程机器列表的SSH登录脚本

    在公司里, 常常要远程到很多机器上执行命令.机器列表会逐渐增多, 记忆这么多机器的IP或域名显然不是人脑所擅长的.因此, 需要保持一份SSH机器列表,从这些机器列表生成一个用于SSH到机器列表中机器的 ...

  9. 使用cygwin出现syntax error near unexpected token'$'do\r

    直接从csdn复制粘贴的.sh代码,放到cygwin下运行sh的时候出错syntax error near unexpected token'$'do\r 解决方法: 1.下载notepad++ 2. ...

  10. ViewPager With FragmentPagerAdapter

    采用PagerAdapter中的FragmentPagerAdapter来实现页面切换,适用于a handful of typically more static fragments to be pa ...