#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. Unity3D Shader水波效果

    水波效果 Shader "Custom/WaterWave" { Properties { _MainTex ("Base (RGB)", 2D) = &quo ...

  2. 剖析Elasticsearch集群系列之二:分布式的三个C、translog和Lucene段

    转载:http://www.infoq.com/cn/articles/anatomy-of-an-elasticsearch-cluster-part02 共识——裂脑问题及法定票数的重要性 共识是 ...

  3. WMware 安装 Mac OSX

    1,下载unlock.zip工具,破解VMware没有mac选项情况 2. 下载OS X 10.11.1(15B42).cdr 3.MWare虚拟机提示:“锁定文件失败,打不开磁盘或快照所依赖的磁盘” ...

  4. C - Building Fence

    Long long ago, there is a famous farmer named John. He owns a big farm and many cows. There are two ...

  5. 一名前端Web架构师的成长之路(转载)

    本人也是coding很多年,虽然很失败,但也总算有点失败的心得,不过我在中国,大多数程序员都是像我一样,在一直走着弯路.如果想成为一个架构师,就必须走正确的路,否则离目标越来越远,正在辛苦工作的程序员 ...

  6. vue 实现聊天框滚动到底

    在需要出现滚动条的 DOM上添加 v-scroll 属性: <div class="chat-box" v-scroll="{auto: true}"&g ...

  7. 网络通信协议八之UDP协议详解

    视频传输中使用UDP协议比较多 UDP协议的责任 >>创建进程到进程间的通信(由端口号完成) >>有限的差错控制,出现差错悄悄丢弃报文(注意这点和TCP协议的区别)

  8. 深度学习模型融合stacking

    当你的深度学习模型变得很多时,选一个确定的模型也是一个头痛的问题.或者你可以把他们都用起来,就进行模型融合.我主要使用stacking和blend方法.先把代码贴出来,大家可以看一下. import ...

  9. 开始使用vue和vuetify

    底部加上vue的script <!-- development version, includes helpful console warnings --> <script src= ...

  10. Haproxy的三种保持客户端会话保持方式

    2017-03-25 15:41:41   haproxy 三种保持客户端Seesion; 一.源地址hash(用户IP识别) haroxy 将用户IP经过hash计算后 指定到固定的真实服务器上(类 ...