#include <stdio.h>
#include <string.h>
int map[51][51][51];
int v[51][51][51];
int a,b,c,t11;
struct node
{
int x,y,z,ans;
}q[200001];
int jx[6]={0,0,0,0,-1,1};
int jy[6]={0,0,1,-1,0,0};
int jz[6]={1,-1,0,0,0,0};
void bfs()
{
memset(v,0,sizeof(v));
struct node t,f;
int e=0;
int s=0;
t.x=0;
t.y=0;
t.z=0;
v[0][0][0]=1;
t.ans=0;
q[e++]=t;
while(s<e)
{
t=q[s++];
if((t.x==a-1)&&(t.y==b-1)&&(t.z==c-1)&&(t.ans<=t11))
{
printf("%d\n",t.ans);
return ;
}
for(int i=0;i<6;i++)
{
f.x=t.x+jx[i];
f.y=t.y+jy[i];
f.z=t.z+jz[i];
if(f.x>=0&&f.x<a&&f.y>=0&&f.y<b&&f.z>=0&&f.z<c&&v[f.x][f.y][f.z]==0&&map[f.x][f.y][f.z]==0)
{
f.ans=t.ans+1;//我二逼似的在这里写了f.ans=t.ans++;那么f.ans=0;
q[e++]=f;
v[f.x][f.y][f.z]=1;
}
}
}
printf("-1\n");
return ;
}
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
scanf("%d%d%d%d",&a,&b,&c,&t11);
for(int i=0;i<a;i++)
{
for(int j=0;j<b;j++)
for(int k=0;k<c;k++)
scanf("%d",&map[i][j][k]);

}
bfs();

}
return 0;
}

三维bfs(HUD1253胜利大逃亡)的更多相关文章

  1. BFS:胜利大逃亡

    解题心得: 1.水题,主要主意好一个点就好. 2.注意x.y.z坐标的选取就好. 题目: Ignatius被魔王抓走了,有一天魔王出差去了,这可是Ignatius逃亡的好机会. 魔王住在一个城堡里,城 ...

  2. HDU 1253 (简单三维广搜) 胜利大逃亡

    奇葩!这么简单的广搜居然爆内存了,而且一直爆,一直爆,Orz 而且我也优化过了的啊,尼玛还是一直爆! 先把代码贴上睡觉去了,明天再来弄 //#define LOCAL #include <ios ...

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

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

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

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

  5. HDU 1253:胜利大逃亡(简单三维BFS)

    pid=1253">胜利大逃亡 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/ ...

  6. HDU1253 胜利大逃亡 BFS

    胜利大逃亡 Time Limit : 4000/2000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submiss ...

  7. HDU1253 胜利大逃亡(BFS) 2016-07-24 13:41 67人阅读 评论(0) 收藏

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

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

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

  9. HDU1253 胜利大逃亡 (BFS)

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

随机推荐

  1. python3之文件操作

    一   打开文件   根目录在d盘的文件名为‘学习资料.txt’的文件 a)绝对路径(最开始的,根目录文件)例:    e:\学习资料.txt 相对路径   直接用文件名字 b)操作方式  只读  只 ...

  2. Linux上强制踢出其他正在登录的用户

    一.查看当前在线用户有几个 w命令 [root@pa1 nginx]#w 13:36:00 up 79 days, 23:50, 3 users, load average: 0.10, 0.07, ...

  3. 在 .NET Framework Data Provider for Microsoft SQL Server Compact 3.5 中发生错误

    32位机器删除 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\version\DataProviders\{7C602B5B-ACCB-4acd ...

  4. {Python之线程} 一 背景知识 二 线程与进程的关系 三 线程的特点 四 线程的实际应用场景 五 内存中的线程 六 用户级线程和内核级线程(了解) 七 python与线程 八 Threading模块 九 锁 十 信号量 十一 事件Event 十二 条件Condition(了解) 十三 定时器

    Python之线程 线程 本节目录 一 背景知识 二 线程与进程的关系 三 线程的特点 四 线程的实际应用场景 五 内存中的线程 六 用户级线程和内核级线程(了解) 七 python与线程 八 Thr ...

  5. tensorflow的variable的eval()和read_eval()有什么不同

    eval()返回的数值标量 read_eval()返回的是这个变量的tensor,类型是read 直接上代码: def tensoflow_test(): t = tf.Variable(initia ...

  6. 会话(Session)与cookies

    由于http是无状态的,向服务器发送请求后,服务器解析请求然后返回对应的响应,服务器负责完成这个过程是完全独立的,不会记录前后状态的变化,因此缺少状态记录. 我们分别需要会话和Cookies的技术来保 ...

  7. PCI 设备调试手段

    Author: Younix Platform: RK3399 OS: Android 6.0 Kernel: 4.4 Version: v2017.04 一PCI 设备调试手段 busybox ls ...

  8. [Day1]常用Dos命令,Java相关描述及基础

    1.常用的DOS命令 (1)返回上一级目录:cd.. (2)返回盘符根目录:cd\ (3)切换当前盘符:   盘符: (4)进入文件夹:       cd 文件路径 (5)展示当前目录下的所有内容:D ...

  9. ios开发dismiss所有控制器

    -(void)dismissToRootViewController { UIViewController *vc = self; while (vc.presentingViewController ...

  10. Mysql 数据库几种引擎的区别比较

    · MyISAM:默认的MySQL插件式存储引擎,它是在Web.数据仓储和其他应用环境下最常使用的存储引擎之一.注意,通过更改STORAGE_ENGINE配置变量,能够方便地更改MySQL服务器的默认 ...