码迷,mamicode.com
首页 > Web开发 > 详细

hdu - 1240 Nightmare && hdu - 1253 胜利大逃亡(bfs)

时间:2015-05-28 15:39:07      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:

http://acm.hdu.edu.cn/showproblem.php?pid=1240

开始没仔细看题,看懂了发现就是一个裸的bfs,注意坐标是三维的,然后每次可以扩展出6个方向。

第一维代表在第几层。后两维代表行和列。

 1 #include <cstdio>
 2 #include <cstring>
 3 #include <queue>
 4 using namespace std;
 5 struct point
 6 {
 7     int x,y,z,step;
 8     bool operator < (const point a) const
 9     {
10         return step>a.step;
11     }
12 };
13 point t,e;
14 int n;
15 char maze[15][15][15];
16 int used[15][15][15];
17 int dir[6][3]={{-1,0,0},{1,0,0},{0,-1,0},{0,1,0},{0,0,-1},{0,0,1}};
18 
19 void bfs()
20 {
21     memset(used,0,sizeof(used));
22     priority_queue<point>que;
23     que.push(t);
24     used[t.z][t.x][t.y]=1;
25     while(!que.empty())
26     {
27         point s=que.top(); que.pop();
28       //  printf("%d %d %d %d\n",s.z,s.x,s.y,s.step);
29         if(s.x==e.x&&s.y==e.y&&s.z==e.z) {printf("%d %d\n",n,s.step);return;}
30         for(int i=0;i<6;i++)
31         {
32             t.x=s.x+dir[i][0],t.y=s.y+dir[i][1],t.z=s.z+dir[i][2];
33             if(t.x>=0&&t.x<n&&t.y>=0&&t.y<n&&t.z>=0&&t.z<n&&maze[t.z][t.x][t.y]!=X&&!used[t.z][t.x][t.y])
34             {
35                 t.step=s.step+1;
36                 used[t.z][t.x][t.y]=1;
37                 que.push(t);
38             }
39         }
40     }
41     printf("NO ROUTE\n");
42 }
43 int main()
44 {
45    // freopen("a.txt","r",stdin);
46     char s[10];
47     while(~scanf("%s",s))
48     {
49         scanf("%d",&n);
50         for(int i=0;i<n;i++)
51             for(int j=0;j<n;j++)
52             scanf("%s",maze[i][j]);
53         scanf("%d%d%d",&t.y,&t.x,&t.z);
54         t.step=0;
55         scanf("%d%d%d",&e.y,&e.x,&e.z);
56         scanf("%s",s);
57         bfs();
58     }
59     return 0;
60 }

 

hdu - 1240 Nightmare && hdu - 1253 胜利大逃亡(bfs)

标签:

原文地址:http://www.cnblogs.com/nowandforever/p/4535906.html

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