G - 胜利大逃亡

Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u

Submit Status Practice HDU 1253

Description

Ignatius被魔王抓走了,有一天魔王出差去了,这但是Ignatius逃亡的好机会.

魔王住在一个城堡里,城堡是一个A*B*C的立方体,能够被表示成A个B*C的矩阵,刚開始Ignatius被关在(0,0,0)的位置,离开城堡的门在(A-1,B-1,C-1)的位置,如今知道魔王将在T分钟后回到城堡,Ignatius每分钟能从一个坐标走到相邻的六个坐标中的当中一个.如今给你城堡的地图,请你计算出Ignatius是否能在魔王回来前离开城堡(仅仅要走到出口就算离开城堡,假设走到出口的时候魔王刚好回来也算逃亡成功),假设能够请输出须要多少分钟才干离开,假设不能则输出-1.

 

Input

输入数据的第一行是一个正整数K,表明測试数据的数量.每组測试数据的第一行是四个正整数A,B,C和T(1<=A,B,C<=50,1<=T<=1000),它们分别代表城堡的大小和魔王回来的时间.然后是A块输入数据(先是第0块,然后是第1块,第2块......),每块输入数据有B行,每行有C个正整数,代表迷宫的布局,当中0代表路,1代表墙.(假设对输入描写叙述不清楚,能够參考Sample Input中的迷宫描写叙述,它表示的就是上图中的迷宫)

特别注意:本题的測试数据很大,请使用scanf输入,我不能保证使用cin能不超时.在本OJ上请使用Visual C++提交.

 

Output

对于每组測试数据,假设Ignatius可以在魔王回来前离开城堡,那么请输出他最少须要多少分钟,否则输出-1.
 

Sample Input

1 3 3 4 20 0 1 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 0 0 1 0 1 1 1 0 0 0 0 0 1 1 0 0 1 1 0
 

Sample Output

11
 
真正的裸3维BFS
基本上没什么要注意。暴力宽搜
<span style="font-size:18px;">#include <cstdio></span><span style="font-size: 17px;">
#include <iostream>
#include <cstring>
#include <algorithm>
#include <queue>
using namespace std;
int A,B,C,T;
bool vis[60][60][60];
bool ma[60][60][60];
typedef struct node
{int x,y,z,step;
};
int mv[6][3]={{0,0,1},{0,0,-1},{1,0,0},{-1,0,0},{0,1,0},{0,-1,0}};//6个方向
void bfs()
{queue <node> Q;node  t; t.x=0;t.y=0;t.z=0;t.step=0;vis[0][0][0]=1;Q.push(t);while(!Q.empty()){node f=Q.front();Q.pop();if(f.x==A-1&&f.y==B-1&&f.z==C-1){if(f.step<=T){printf("%d\n",f.step);return ;}else{puts("-1");return ;}}for(int i=0;i<6;i++){t.x=f.x+mv[i][0];t.y=f.y+mv[i][1];t.z=f.z+mv[i][2];if(0<=t.x&&t.x<A&&0<=t.y&&t.y<B&&0<=t.z&&t.z<C&&!vis[t.x][t.y][t.z]&&!ma[t.x][t.y][t.z]){vis[t.x][t.y][t.z]=1;t.step=f.step+1;Q.push(t);}}}puts("-1");
}
int main()
{int K,i,j,k;scanf("%d",&K);while(K--){scanf("%d%d%d%d",&A,&B,&C,&T);memset(vis,0,sizeof(vis));for(i=0;i<A;i++)for(j=0;j<B;j++)for(k=0;k<C;k++)scanf("%d",&ma[i][j][k]);bfs();}return 0;
}</span>

版权声明:本文博客原创文章,博客,未经同意,不得转载。

转载于:https://www.cnblogs.com/hrhguanli/p/4630212.html

HDU 1253-大逃亡(裸-DBFS)相关推荐

  1. HDU 胜利大逃亡(BFS)

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

  2. HDU - 胜利大逃亡(搜索)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1253 Time Limit: 4000/2000 MS (Java/Others) Memory Li ...

  3. HDU 1253 胜利大逃亡

    胜利大逃亡 Time Limit: 2000ms Memory Limit: 32768KB This problem will be judged on HDU. Original ID: 1253 ...

  4. HDOJ 1253 HDU 1253 胜利大逃亡 ACM 1253 IN HDU

    MiYu原创, 转帖请注明 : 转载自 ______________白白の屋   题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=1253 题目描述: ...

  5. HDU 1253 - 胜利大逃亡

    HDU 1253 - 胜利大逃亡 Problem: a* b* c 立方体,从(1,1,1)到(a,b,c),最短路<=限制时间 Solution: BFS Code: #include< ...

  6. HDU 1253.胜利大逃亡

    胜利大逃亡 Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u SubmitStatusP ...

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

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

  8. HDU 1253 胜利大逃亡 题解

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

  9. HDU 1253 胜利大逃亡

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

最新文章

  1. 物联网时代 人工智能如何与信息安全平衡发展?
  2. P1462 通往奥格瑞玛的道路[最短路+二分+堆优化]
  3. Netty通信框架Java实现小记
  4. opengl关于obj文件相关知识
  5. TRDD got lost again
  6. mysql默认乐观锁悲观锁_MySQL中悲观锁和乐观锁到底是什么?-阿里云开发者社区...
  7. Qt|OpenGL学习笔记-绕X轴、Y轴、以及XY轴旋转的四边体
  8. python 面向对象_多态、内置方法、反射
  9. Android开发笔记(四十八)Thread类实现多线程
  10. 磁盘阵列(RAID)
  11. 与计算机专业的社会学的论文,计算机专业研究生论文致谢词
  12. Microsoft Office Excel 已停止工作
  13. java开发工具排名_排名前16的Java工具类
  14. 找不到或无法加载主类怎么办
  15. 为什么网页游戏不停开新服务器,网页游戏为什么要不断开新服?
  16. 使用xcode无开发者账号打包.ipa文件
  17. 添加Win10文件夹详细信息------统一显示内容
  18. 山东大学软件学院数据仓库数据挖掘期末复习
  19. Android MVP架构
  20. c语言二维函数杨辉三角,C语言编写杨辉三角(二维数组方法)

热门文章

  1. git简明教程:基本操作命令
  2. Spring Boot整合Mybatis-Plus 增删改查+ 分页基本使用完整示例
  3. SpringBoot JWT工具类完整代码
  4. jQuery easyUI--数据表格 datagrid 的使用
  5. Qt鼠标拖动绘制基本几何图形
  6. 小米与格力的10亿豪赌!
  7. 张秋余---经典语录
  8. SPI通信总线-51
  9. php mysql inner join,inner join用法是什么
  10. 5.1.3 OS控制I/O设备的几种方式?(程序直接控制方式、中断驱动方式、DMA、通道控制)