進階班例題
迷宮最短路徑
時間限制 1000 ms · 記憶體限制 256 MB · C++
給定一個 $H \times W$ 的迷宮地圖,由以下幾種字元組成:
S:起點G:終點.:可通行的格子#:牆壁,不可通行
你只能上下左右移動一格,請找出從起點S到終點G的最短路徑長度。
保證輸入地圖中有且只有一個S與一個G,且保證起點S可達終點G。
輸入說明
- 第一行輸入兩個整數 $H, W$。
- 接下來 $H$ 行,每行一個長度為 $W$ 的字串。
- $2 \leq H, W \leq 1000$
輸出說明
輸出從S到G的最短路徑長度。
範例
範例輸入 1
5 7 S.....# #####.# #...#.# #.###.# #.....G
範例輸出 1
10
範例輸入 2
6 6 S#...# .#.#.# .#.#.# .#.#.# .#.#.# ...#.G
範例輸出 2
20
範例輸入 3
3 4 S..# ##.# ..G#
範例輸出 3
4
C++77 / 50,000
「跑範例測資」只跑題目敘述上的範例,會顯示你的輸出與正確答案的對照; 「提交評測」會跑完整的測資並給實際結果,但不會顯示測資內容。兩者都不需要帳號,也不會留下成績紀錄。