标签:style blog http color os for
题目链接: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 胜利大逃亡(简单题),布布扣,bubuko.com
标签:style blog http color os for
原文地址:http://www.cnblogs.com/qq-star/p/3833743.html