码迷,mamicode.com
首页 > 其他好文 > 详细

[kuangbin带你飞]专题一 简单搜索 - B - Dungeon Master

时间:2015-01-27 20:01:40      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<string>
 4 #include<vector>
 5 #include<queue>
 6 #include<cstring>
 7 using namespace std;
 8 struct node
 9 {
10     int x;
11     int y;
12     int z;
13     int step;
14 };
15 char dung[35][35][35];
16 int d[6][3] = {{0,0,1},{0,0,-1},{0,1,0},{0,-1,0},{1,0,0},{-1,0,0}};
17 int l, r, c;
18 int main()
19 {
20 //    freopen("in.in","r",stdin);
21     char tp[40];
22     node start, tmp;
23     int ans = 0;
24     queue<node>q;
25     while(cin>>l>>r>>c)
26     {
27         ans = 0;
28         memset(dung,0,sizeof(dung));
29         if(l*r*c == 0)    break;
30         for(int k = 1; k <= l; k++)
31             for(int i = 1; i <= r; i++)
32             {
33                 cin>>tp;
34                 for(int j = 1; j <= c; j++)
35                 {
36                     dung[k][i][j] = tp[j-1];
37                     if(tp[j-1]==S)
38                     {
39                         start.x = i;
40                         start.y = j;
41                         start.z = k;
42                         start.step = 0;
43                     }
44                 }
45             }
46         q.push(start);
47         dung[start.z][start.x][start.y] = #;
48         while(q.size())
49         {
50             start = q.front();
51             q.pop();
52             for(int i = 0; i < 6; i++)
53             {
54                 tmp.x = start.x + d[i][0];
55                 tmp.y = start.y + d[i][1];
56                 tmp.z = start.z + d[i][2];
57                 tmp.step = start.step + 1;
58                 if(dung[tmp.z][tmp.x][tmp.y] == E)
59                 {
60                     ans = tmp.step;
61                     break;
62                 }
63                 if(dung[tmp.z][tmp.x][tmp.y]!=.)    continue;
64                 q.push(tmp);
65                 dung[tmp.z][tmp.x][tmp.y] = #;
66             }
67         }
68         if(ans)        printf("Escaped in %d minute(s).\n",ans);
69         else        printf("Trapped!\n");
70         while(q.size())    q.pop();
71     }
72     return 0;
73 } 

 

[kuangbin带你飞]专题一 简单搜索 - B - Dungeon Master

标签:

原文地址:http://www.cnblogs.com/you-well-day-fine/p/4253601.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!