题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1253

思路分析:因为问题需要寻找到达终点的最短的距离(最短的步数),即在状态转换图上需要找出层次最浅的的状态(A-1, B-1, C-1),

所以采用bfs更快能找出答案;另外,若采用dfs则比较困难,需要遍历所有的状态才能找出结果。

代码如下

#include <cstdio>
#include <iostream> const int MAX_N = ;
struct Point
{
int a, b, c;
int time;
Point() { a = ; b = ; c = ; time = ; }
Point(int x, int y, int z, int step_time)
{
a = x; b = y; c = z; time = step_time;
}
}; int ans = ;
int A, B, C, game_times;
int map[MAX_N][MAX_N][MAX_N];
int move[][] =
{{, , -}, {, , }, {, -, }, {, , }, {-, , }, {, , }};
Point queue[]; int Bfs()
{
int head, tail;
Point temp; head = tail = ;
temp.a = temp.b = temp.c = temp.time = ;
queue[tail++] = temp; while (head != tail)
{
temp = queue[head++];
for (int i = ; i < ; ++i)
{
int next_a = temp.a + move[i][];
int next_b = temp.b + move[i][];
int next_c = temp.c + move[i][]; if (next_a < || next_b < || next_c <
|| next_a >= A || next_b >= B || next_c >= C
|| map[next_a][next_b][next_c] > || temp.time + > game_times)
continue; if (next_a == A - && next_b == B - && next_c == C - )
return temp.time + ; Point next(next_a, next_b, next_c, temp.time + );
map[next_a][next_b][next_c] = next.time;
queue[tail++] = next;
}
}
return -;
} int main()
{
int k; scanf("%d", &k);
while (k--)
{
scanf("%d %d %d %d", &A, &B, &C, &game_times);
for (int i = ; i < A; ++i)
for (int j = ; j < B; ++j)
for (int k = ; k < C; ++k)
scanf("%d", &map[i][j][k]); printf("%d\n", Bfs());
}
return ;
}

HDOJ 1253 胜利大逃亡(bfs)的更多相关文章

  1. hdoj 1253 胜利大逃亡

    胜利大逃亡 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submi ...

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

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

  3. HDU 1253 胜利大逃亡(BFS)

    题目链接 Problem Description Ignatius被魔王抓走了,有一天魔王出差去了,这可是Ignatius逃亡的好机会.魔王住在一个城堡里,城堡是一个A*B*C的立方体,可以被表示成A ...

  4. Hdoj 1253.胜利大逃亡 题解

    Problem Description Ignatius被魔王抓走了,有一天魔王出差去了,这可是Ignatius逃亡的好机会. 魔王住在一个城堡里,城堡是一个ABC的立方体,可以被表示成A个B*C的矩 ...

  5. ny523 亡命逃串 hdoj 1253胜利大逃亡

    亡命逃窜 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 从前有个叫hck的骑士,为了救我们美丽的公主,潜入魔王的老巢,够英雄吧.不过英雄不是这么好当的.这个可怜的娃被魔 ...

  6. hdoj 1429 胜利大逃亡(续) 【BFS+状态压缩】

    题目:pid=1429">hdoj 1429 胜利大逃亡(续) 同样题目: 题意:中文的,自己看 分析:题目是求最少的逃亡时间.确定用BFS 这个题目的难点在于有几个锁对于几把钥匙.唯 ...

  7. hdu 1253:胜利大逃亡(基础广搜BFS)

    胜利大逃亡 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submi ...

  8. HDU 1253 胜利大逃亡 NYOJ 523【BFS】

    胜利大逃亡 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  9. hdu 1253 胜利大逃亡 (三维简单bfs+剪枝)

    胜利大逃亡 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

随机推荐

  1. 使用jquery控制display属性

    //隐藏 $("#id").css('display','none'); //显示 $("#id").css('display','block'); 或 $(& ...

  2. JavaScript 入門

    <html lang="en"> <head>   <meta charset="UTF-8">   <meta na ...

  3. python 发送安全邮件

    用python 写了一个发送邮件的脚本,配上host 和端口,发现一直报错: smtplib.SMTPException: No suitable authentication method foun ...

  4. c++ 学习笔记(常见问题与困惑)(转载)

    本问转自: http://www.cnblogs.com/maowang1991/p/3290321.html 1.struct成员默认访问方式是public,而 class默认访问方式是privat ...

  5. java核心技术学习笔记之三程序设计结构

    一 基本数据结构 必须包括在类中 必须具备 public static main方法 大小写敏感 二.数据类型 四种整数类型: Int 4字节 short 2字节 long8字节 byte1字节 二种 ...

  6. 一个用C++写的Json解析与处理库

    什么是Json?这个库能做什么? JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is e ...

  7. android 关于多任务下载问题

    关于多任务下载问题    近期项目中,遇到一个问题,列表数据中的图片地址是一个需要下载JS再解析的字段,之前的图片下载是一个异步的过程,由一个队列处理. Android系统以不同寻常的方式处理多个应用 ...

  8. 数据库 BUG:Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation '=

    在mysql5中遇到的问题: Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) f ...

  9. openstack nova修改实例路径,虚拟磁盘路径

    #实例路径 --instances_path=$state_path/instances #日志的目录 --logdir=/var/log/nova #nova的目录 --state_path=/va ...

  10. Android项目开发五-《星星生活志》1.使用MediaRecorder录制音频

    Android设备实现录制音频的简单demo 转载请注明; http://blog.csdn.net/u013670933/article/details/26089487 代码例如以下: publi ...