一题简直模板的
BFS,只是三维遍历而已。

#include <stdio.h>

#include <iostream>

#include <sstream>

#include <string.h>

#include <math.h>

#include<stdlib.h>

#include <queue>

#include <set>

#include <algorithm>

using namespace std;

int A,B,C,t;

int dxy[7][3]=

{

    0,-1,0,

    0,1,0,

    1,0,0,

    -1,0,0,

    0,0,1,

    0,0,-1

};

int a[55][55][55];

int flag[55][55][55];

struct asd

{

    int x,y,z;

    int step;

} now,ne;

queue<asd>q;

void bfs()

{

    int i;

    memset(flag,0,sizeof(flag));

    while(!q.empty())

        q.pop();

    now.x=0;

    now.y=0;

    now.z=0;

    now.step=0;

    flag[0][0][0]=1;

    q.push(now);

    while(!q.empty())

    {

        now=q.front();

        q.pop();

        if(now.step+1>t)

            break;

        for(i=0; i<6; i++)

        {

            int dx=now.x+dxy[i][0];

            int dy=now.y+dxy[i][1];

            int dz=now.z+dxy[i][2];

            if(dx==A-1&&dy==B-1&&dz==C-1&&now.step+1<=t)

            {

                printf("%d\n",now.step+1);

                return;

            }

            if(dx<0||dy<0||dz<0||dz>=C||dy>=B||dx>=A||flag[dx][dy][dz]||a[dx][dy][dz])

                continue;

            flag[dx][dy][dz]=1;

            ne.x=dx;

            ne.y=dy;

            ne.z=dz;

            ne.step=now.step+1;

            q.push(ne);

        }

    }

    printf("-1\n");

}

int main()

{

    int i,j,k,T;

    scanf("%d",&T);

    while(T--)

    {

        scanf("%d%d%d%d",&A,&B,&C,&t);

        for(i=0; i<A; i++)

        {

            for(j=0; j<B; j++)

            {

                for(k=0; k<C; k++)

                    scanf("%d",&a[i][j][k]);

            }

        }

        bfs();

    }

    return 0;

}

hdoj1253的更多相关文章

  1. HDOJ1253 胜利大逃亡 BFS

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

随机推荐

  1. Drupal 初次使用感受,兴许补充。

    非常久曾经就接触过.下载下来安装,结果界面太丑,太难看,直接删除. 近期又一次想到开源CMS,好奇看到那么多人推崇drupal.也便下载来又一次研究了下. 刚接触了下.只是总体使用感觉非常差.尤其几个 ...

  2. SQL 游标示例

    DECLARE @i INT ) --给初始值 CREATE TABLE #temp_test --创建临时表 ( num ) ) ) BEGIN INSERT INTO #temp_test ( n ...

  3. iOS Dev (26) 初步了解下UIColor的最常用知识

    作者:CSDN 大锐哥 地址:http://blog.csdn.net/prevention - 内置的颜色有啥? // Some convenience methods to create colo ...

  4. struts2的核心和工作原理 (转)

    转自--------http://blog.csdn.net/laner0515/article/details/27692673 在学习struts2之前,首先我们要明白使用struts2的目的是什 ...

  5. 开发指南专题十一:JEECG微云高速开发平台--基础用户权限

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/zhangdaiscott/article/details/26580037     开发指南专题 ...

  6. Codeforces Round #383 (Div. 2) C. Arpa's loud Owf and Mehrdad's evil plan —— DFS找环

    题目链接:http://codeforces.com/contest/742/problem/C C. Arpa's loud Owf and Mehrdad's evil plan time lim ...

  7. 谈谈网站测试中的AB测试方法

    什么是A/B测试? A / B测试,即你设计的页面有两个版本(A和B),A为现行的设计, B是新的设计.比较这两个版本之间你所关心的数据(转化率,业绩,跳出率等) ,最后选择效果最好的版本. A / ...

  8. eclipse订制快捷键

    步骤: 1.window-preference. 2.在(1)处输入keys,在(2)处输入命令的原来的快捷键,方便找到Binding,在(3)处输入自定义的快捷键.点击“apply and clos ...

  9. php排序方法之选择排序

    //选择排序法 $arr = array(3,55,45,2,67,76,6.7,-65,85,4); function selectSort($arr){ for ( $i=0; $i<cou ...

  10. H3C-交换机端口绑定

    1.端口和MAC地址绑定: (1)使用am命令: [switch]am user-bind mac-address 00e0-fc23-f8d3 interface Ehternet 0/1 (2)使 ...