hdu 1253 胜利大逃亡(简单题)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1253

题目大意:在所给的时间能顺利离开城堡。

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <queue>
 4 #include <cstring>
 5 using namespace std;
 6 int map[55][55][55],visit[55][55][55],a,b,c,T;
 7 int dir[6][3]= {0,0,1,0,0,-1,0,1,0,0,-1,0,1,0,0,-1,0,0};
 8 struct next
 9 {
10     int x;
11     int y;
12     int z;
13     int t;
14 } s,ss;
15 queue<next>q,qq;
16 int bfs()
17 {
18     s.x=0;
19     s.y=0;
20     s.z=0;
21     s.t=0;
22     map[0][0][0]=1;
23     q.push(s);
24     while (!q.empty())
25     {
26         s=q.front();
27         q.pop();
28         for (int i=0; i<6; i++)
29         {
30             int t=s.t+1;
31             int x=s.x+dir[i][0],y=s.y+dir[i][1],z=s.z+dir[i][2];
32             if (x>=0&&x<a&&y>=0&&y<b&&z>=0&&z<c&&t<=T&&map[x][y][z]==0&&!visit[x][y][z])
33             {
34                 if(x==a-1&&y==b-1&&z==c-1)
35                 {
36                     return t;
37                 }
38                 ss.x=x;
39                 ss.y=y;
40                 ss.z=z;
41                 ss.t=t;
42                 visit[x][y][z]=1;
43                 q.push(ss);
44
45             }
46         }
47     }
48     return -1;
49 }
50 int main ()
51 {
52     int o,i,j,k;
53     scanf ("%d",&o);
54     while (o--)
55     {
56         memset(visit,0,sizeof(visit));
57         q=qq;
58         scanf ("%d%d%d%d",&a,&b,&c,&T);
59         for (i=0; i<a; i++)
60             for (j=0; j<b; j++)
61                 for (k=0; k<c; k++)
62                     scanf ("%d",&map[i][j][k]);
63         int t=bfs();
64         if (t>=0)
65             printf ("%d\n",t);
66         else
67             printf ("-1\n");
68     }
69     return 0;
70 }

hdu 1253 胜利大逃亡(简单题)

时间: 2024-10-08 13:56:52

hdu 1253 胜利大逃亡(简单题)的相关文章

HDU 1253 胜利大逃亡(BFS)

#include <iostream> #include <cstdlib> #include <cstdio> #include <queue> #include <cstring> using namespace std; struct node{ int x,y,z,step; }; int ma[51][51][51]; int A,B,C,T; int mv[6][3] = {{1,0,0},{0,1,0},{0,0,1},{-1,0,

HDU 1253 胜利大逃亡 NYOJ 523【BFS】

胜利大逃亡 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 24608    Accepted Submission(s): 9427 Problem Description Ignatius被魔王抓走了,有一天魔王出差去了,这可是Ignatius逃亡的好机会. 魔王住在一个城堡里,城堡是一个A*B*C的立方体,可以被表示成A个B*C的

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

胜利大逃亡 Problem Description Ignatius被魔王抓走了,有一天魔王出差去了,这可是Ignatius逃亡的好机会. 魔王住在一个城堡里,城堡是一个A*B*C的立方体,可以被表示成A个B*C的矩阵,刚开始Ignatius被关在(0,0,0)的位置,离开城堡的门在(A-1,B-1,C-1)的位置,现在知道魔王将在T分钟后回到城堡,Ignatius每分钟能从一个坐标走到相邻的六个坐标中的其中一个.现在给你城堡的地图,请你计算出Ignatius能否在魔王回来前离开城堡(只要走到出

hdu 1253 胜利大逃亡(bfs)

胜利大逃亡 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 29504    Accepted Submission(s): 11124 Problem Description Ignatius被魔王抓走了,有一天魔王出差去了,这可是Ignatius逃亡的好机会. 魔王住在一个城堡里,城堡是一个A*B*C的立方体,可以被表示成A个B*C的

HDU 1253 胜利大逃亡

胜利大逃亡 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 30841    Accepted Submission(s): 11509 Problem Description Ignatius被魔王抓走了,有一天魔王出差去了,这可是Ignatius逃亡的好机会. 魔 王住在一个城堡里,城堡是一个A*B*C的立方体,可以被表示成A个B*C

poj 2251Dungeon Master+hdu 1253 胜利大逃亡(bfs)

Dungeon Master Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 18875   Accepted: 7324 Description You are trapped in a 3D dungeon and need to find the quickest way out! The dungeon is composed of unit cubes which may or may not be filled

HDU 1253 胜利大逃亡 题解

胜利大逃亡 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 44540    Accepted Submission(s): 15483 Problem Description Ignatius被魔王抓走了,有一天魔王出差去了,这可是Ignatius逃亡的好机会. 魔王住在一个城堡里,城堡是一个A*B*C的立方体,可以被表示成A个B*C的

HDU 1253 胜利大逃亡(三维BFS)

胜利大逃亡 Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Description Ignatius被魔王抓走了,有一天魔王出差去了,这可是Ignatius逃亡的好机会. 魔王住在一个城堡里,城堡是一个A*B*C的立方体,可以被表示成A个B*C的矩阵,刚开始Ignatius被关在(0,0,0)的位置,离开城堡的门在(A-1,B-1,C-1)的位置,现在知道魔王将在T分钟后回到城堡,Ignat

hdu 1253胜利大逃亡

胜利大逃亡 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 24977    Accepted Submission(s): 9556 Problem Description Ignatius被魔王抓走了,有一天魔王出差去了,这可是Ignatius逃亡的好机会. 魔王住在一个城堡里,城堡是一个A*B*C的立方体,可以被表示成A个B*C的