纠结一晚上,注意细节啊!!!(看到有很多解题报告都用<queue>,我不太喜欢用STL的东西。。。)

My Code:

#include <iostream>#include <cstdio>#include <cstring>

using namespace std;

const int N = 51;

struct node{int x;int y;int z;int t;}q[N*N*N];

int d[6][3] = {{1, 0, 0}, {-1, 0, 0}, {0, 1, 0}, {0, -1, 0}, {0, 0, -1}, {0, 0, 1}};int map[N][N][N];int ans, T, X, Y, Z;

int bfs(){int f = 0, r = 0, i;    node p;    map[0][0][0] = 1;    q[0].x = 0; q[0].y = 0;    q[0].z = 0; q[0].t = 0;while(f <= r)    {        p = q[f++];

for(i = 0; i < 6; i++)        {int a = p.x + d[i][0];int b = p.y + d[i][1];int c = p.z + d[i][2];if(a >= 0 && a < X && b >= 0 && b < Y && c >= 0 && c < Z && !map[a][b][c])            {if(a == X-1 && b == Y-1 && c == Z-1 && p.t+1 <= T)                {                    ans = p.t + 1;return 1;                }r++;                map[a][b][c] = 1;                q[r].x = a;                q[r].y = b;                q[r].z = c;                q[r].t = p.t+1;            }        }    }return 0;}

int main(){//freopen("data.in", "r", stdin);    int t, i, j, k;    scanf("%d", &t);while(t--)    {        scanf("%d%d%d%d", &X, &Y, &Z, &T);

        memset(map, 0, sizeof(map));

for(i = 0; i < X; i++)for(j = 0; j < Y; j++)for(k = 0; k < Z; k++)                    scanf("%d", &map[i][j][k]);        ans = 0;if(bfs())            printf("%d\n", ans);else            printf("-1\n");    }return 0;}

HDU_1253 胜利大逃亡(BFS)相关推荐

  1. HDU-1253 胜利大逃亡 (BFS)

    好吧,上次刚傻完这次又傻了一次,先粘题目吧. 题目:HDU-1253 胜利大逃亡 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1253 题目: 胜利大 ...

  2. HD 1253 胜利大逃亡(bfs)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1253 Problem Description Ignatius被魔王抓走了,有一天魔王出差去了,这可是 ...

  3. HDU1253:胜利大逃亡(BFS)

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

  4. 胜利大逃亡 --- bfs记录

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

  5. HDU - 1253 胜利大逃亡 BFS

    https://vjudge.net/problem/HDU-1253 AC代码 #include<cstdio> #include<iostream> #include< ...

  6. HDU 胜利大逃亡(BFS)

    HDOJ 1253 胜利大逃亡 (BFS) Problem Description BFS 完整代码 Problem Description Ignatius被魔王抓走了,有一天魔王出差去了,这可是I ...

  7. HDU 1429 胜利大逃亡(续) (BFS+位压缩)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1429 胜利大逃亡(续) Time Limit: 4000/2000 MS (Java/Others)  ...

  8. [ACM] hdu 1253 胜利大逃亡 (三维BFS)

    胜利大逃亡 Problem Description Ignatius被魔王抓走了,有一天魔王出差去了,这但是Ignatius逃亡的好机会. 魔王住在一个城堡里,城堡是一个A*B*C的立方体,能够被表示 ...

  9. hdu 1429 胜利大逃亡(续) bfs+状态压缩

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

最新文章

  1. 一流投资人会关注什么样的区块链初创公司?
  2. MyBatis-Plus_实体作为条件构造器构造方法的参数
  3. GitHub#algorithm#:《剑指offer》 的50道面试题
  4. mysql修改字段结构_MySQL修改表结构及其添加删除修改字段功能
  5. BZOJ 2708 [Violet 1]木偶 DP
  6. 用java在JPanel中建一个表格_如何使用Java在JPanel中显示JTable?
  7. ios开发中的字符串常量如何处理
  8. 2.学习管理系统项目学习一
  9. Atitit.js的键盘按键事件捆绑and事件调度
  10. 余压监控系统保证火灾发生时消防疏散通道的通畅,为大型高层建筑的安全运行和人民生命财产安全保驾护航
  11. 安装PL-2303驱动
  12. (100天2小时第二十九天)几种常见的图像噪声及去噪处理算法
  13. configure it with blueman-service
  14. CVPR2019目标检测汇总
  15. Linux-系统的初始化和服务
  16. 产品经理的修炼:如何把梳子卖给和尚
  17. 任何没有行动的爱,顶多算是喜欢
  18. Matlab技巧总结——22-MathorCup
  19. 只显示border边框左右(上下)两边怎么写?
  20. 个人如何申请计算机软著著作

热门文章

  1. oracle rac 磁盘重建,Oracle RAC环境下重建ASM磁盘组 Re-create ASM diskgroup with Oracle RAC...
  2. java 文件写入 读取_JAVA文件的两种读取方法和三种写入方法
  3. 你们的竞赛更需要你们的参与
  4. 对比电机和舵机中的PWM信号的作用
  5. 使用PYTHON操作Excel的工具
  6. 基于STC8G8K64U三通道高速ADC采集板
  7. 河北计算机课本初中,河北:2019-2020学年中小学教学用书有变
  8. curl抓取页面是乱码 php_php curl 获取网页内容 中文乱码
  9. 从乘法表JAVA意思4_四、Java从头开始-我的九九乘法表(二)
  10. C 回顾 volatile 和 register 修饰符