亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

POJ2251-Dungeon Master

系統 1983 0

轉載請注明出處:優 YoU http://user.qzone.qq.com/289065406/blog/1303446571

?

題目大意:
?
給出一三維空間的地牢 , 要求求出由字符 'S' 到字符 'E' 的最短路徑

移動方向可以是上,下,左,右,前,后,六個方向

每移動一次就耗費一分鐘,要求輸出最快的走出時間。
不同 L 層的地圖,相同 RC 坐標處是連通的

?

解題思路:

我越看這題就越覺得是 ? XX 地下城 = =

水題一道,求最短路問題,直接 BFS 得了

開三維數組,每次搜索方向由二維的 4 個方向增加到 6 個,但是方法還是那個方法

沒難度

?

注意若果三維數組恰好開到極限的 30*30*30 是會 RE 的,別替人家電腦省空間,想 AC 就開大點。

?

值得一提的是。。。這題竟然被那篇經典的 ? POJ 分類 ? 文章歸納到 DFS 。。。網上發現幾個同學還在郁悶地 DFS 。。。。

這里就提示一下大家,凡是看到求最短路,用 DFS 一定很難做出來,一定要 BFS

      
          1
      
      
        //
      
      
        Memory Time 
        
2 // 784K 32MS
3
4 #include < iostream >
5 using namespace std;
6
7 typedef class
8 {
9 public :
10 int l,r,c;
11 int depth; // 樹深(分鐘)
12 }SE;
13
14 SE s,e;
15 bool maze[ 40 ][ 40 ][ 40 ];
16 int shortminute;
17
18 bool BFS( int k, int i, int j)
19 {
20 bool vist[ 40 ][ 40 ][ 40 ] = { false };
21
22 SE queue[ 30000 ];
23 int head,tail;
24 queue[head = 0 ].l = k;
25 queue[tail = 0 ].r = i;
26 queue[ 0 ].c = j;
27 queue[tail ++ ].depth = 1 ;
28
29 vist[k][i][j] = true ;
30
31 while (head < tail)
32 {
33 SE x = queue[head ++ ];
34
35 if (x.l == e.l && x.r == e.r && x.c == e.c)
36 {
37 shortminute = x.depth;
38 return true ;
39 }
40
41 if (maze[x.l][x.r][x.c - 1 ] && ! vist[x.l][x.r][x.c - 1 ]) // West
42 {
43 vist[x.l][x.r][x.c - 1 ] = true ;
44 queue[tail].l = x.l;
45 queue[tail].r = x.r;
46 queue[tail].c = x.c - 1 ;
47 queue[tail ++ ].depth = x.depth + 1 ;
48 }
49 if (maze[x.l][x.r - 1 ][x.c] && ! vist[x.l][x.r - 1 ][x.c]) // North
50 {
51 vist[x.l][x.r - 1 ][x.c] = true ;
52 queue[tail].l = x.l;
53 queue[tail].r = x.r - 1 ;
54 queue[tail].c = x.c;
55 queue[tail ++ ].depth = x.depth + 1 ;
56 }
57 if (maze[x.l][x.r][x.c + 1 ] && ! vist[x.l][x.r][x.c + 1 ]) // East
58 {
59 vist[x.l][x.r][x.c + 1 ] = true ;
60 queue[tail].l = x.l;
61 queue[tail].r = x.r;
62 queue[tail].c = x.c + 1 ;
63 queue[tail ++ ].depth = x.depth + 1 ;
64 }
65 if (maze[x.l][x.r + 1 ][x.c] && ! vist[x.l][x.r + 1 ][x.c]) // South
66 {
67 vist[x.l][x.r + 1 ][x.c] = true ;
68 queue[tail].l = x.l;
69 queue[tail].r = x.r + 1 ;
70 queue[tail].c = x.c;
71 queue[tail ++ ].depth = x.depth + 1 ;
72 }
73 if (maze[x.l - 1 ][x.r][x.c] && ! vist[x.l - 1 ][x.r][x.c]) // Up
74 {
75 vist[x.l - 1 ][x.r][x.c] = true ;
76 queue[tail].l = x.l - 1 ;
77 queue[tail].r = x.r;
78 queue[tail].c = x.c;
79 queue[tail ++ ].depth = x.depth + 1 ;
80 }
81 if (maze[x.l + 1 ][x.r][x.c] && ! vist[x.l + 1 ][x.r][x.c]) // Down
82 {
83 vist[x.l + 1 ][x.r][x.c] = true ;
84 queue[tail].l = x.l + 1 ;
85 queue[tail].r = x.r;
86 queue[tail].c = x.c;
87 queue[tail ++ ].depth = x.depth + 1 ;
88 }
89 }
90 return false ;
91 }
92
93 int main( int i, int j, int k)
94 {
95 int L,R,C;
96 while (cin >> L >> R >> C)
97 {
98 if ( ! L && ! R && ! C)
99 break ;
100
101 /* Initial */
102
103 memset(maze, false , sizeof (maze));
104
105 /* Structure the Maze */
106
107 for (k = 1 ;k <= L;k ++ )
108 for (i = 1 ;i <= R;i ++ )
109 for (j = 1 ;j <= C;j ++ )
110 {
111 char temp;
112 cin >> temp;
113 if (temp == ' . ' )
114 maze[k][i][j] = true ;
115 if (temp == ' S ' )
116 {
117 maze[k][i][j] = true ;
118 s.l = k;
119 s.r = i;
120 s.c = j;
121 }
122 if (temp == ' E ' )
123 {
124 maze[k][i][j] = true ;
125 e.l = k;
126 e.r = i;
127 e.c = j;
128 }
129 }
130
131 /* Search the min Minute */
132
133 if (BFS(s.l,s.r,s.c))
134 cout << " Escaped in " << shortminute - 1 << " minute(s). " << endl;
135 else
136 cout << " Trapped! " << endl;
137
138 }
139 return 0 ;
140 }

POJ2251-Dungeon Master


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产精品成aⅴ人片在线观看 | 亚洲一区 在线播放 | 99热这里有精品 | 欧美日韩在线视频一区 | 好吊在线视频 | 九九视频高清视频免费观看 | 九九热精品视频在线播放 | 想看一级毛片 | 四虎影音先锋 | 大伊香蕉在线精品不卡视频 | 91福利一区二区在线观看 | 俄罗斯色视频 | 国产福利视频在线 | www.五月天激情 | 久久精品国产一区二区三区不卡 | 日本xoxo| 91亚洲国产在人线播放午夜 | 精品乱码一区二区三区四区 | 亚洲精品久久久久久久久久久网站 | 99精品在线看 | 国产精品亚洲欧美日韩区 | 桃色婷婷| 成人欧美一区二区三区黑人免费 | 99热这里只有精品5 99热这里只有精品66 | 国产尤物在线播放 | 99九九精品 | 午夜一级成人 | 2022国产成人综合精品 | 久久青草18免费观看网站 | 欧美色激情 | 天天操夜夜 | 激情影院免费 | 一本色道久久综合亚洲精品高清 | 桃花在线视频社区 | 自拍偷自拍亚洲精品被多人伦好爽 | 国产在线一区在线视频 | 美女视频很黄很暴黄是免费的 | 玖玖精品在线 | 国产成人免费高清视频 | 欧美精品 在线播放 | 3d动漫免费一区二区三区 |