I’m stuck!
阿新 • • 發佈:2021-06-14
引子
一道搜尋題。
首先,每次檢索到一個點,BFS兩輪,TLE35分
其次,記錄一下從S->當前點,(BFS一輪),TLE55分
但是,正解只需要兩次BFS
題目描述
給定一個R行C列的地圖,地圖的每一個方格可能是#,+,-,|,.,S,T七個字元中的一個,分別表示如下意思:
#: 任何時候玩家都不能移動到此方格;
+: 當玩家到達這一方格後,下一步可以向上下左右四個方向相鄰的任意一個非#方格移動一格;
-: 當玩家到達這一方格後,下一步可以向左右兩個方向相鄰的一個非#方格移動一格;
|: 當玩家到達這一方格後,下一步可以向上下兩個方向相鄰的一個非#方格移動一格;
.: 當玩家到達這一方格後,下一步只能向下移動一格。如果下面相鄰的方格為#,則玩家不能再移動;
S: 玩家的初始位置,地圖中只會有一個初始位置。玩家到達這一方格後,下一步可以向上下左右四個方向相鄰的任意一個非#方格移動一格;
T: 玩家的目標位置,地圖中只會有一個目標位置。玩家到達這一方格後,可以選擇完成任務,也可以選擇不完成任務繼續移動。如果繼續移動下一步可以向上下左右四個方向相鄰的任意一個非#方格移動一格。
此外,玩家不能移動出地圖。
請找出滿足下面兩個性質的方格個數:
1.玩家可以從初始位置移動到此方格; 2.玩家不可以從此方格移動到目標位置。
輸入格式
輸入的第一行包括兩個整數R和C,分別表示地圖的行和列數。
接下來的R行每行都包含C個字元。它們表示地圖的格子。地圖上恰好有一個S和一個T。
輸出格式
如果玩家在初始位置就已經不能到達終點了,就輸出I'm stuck!。
否則的話,輸出滿足性質的方格的個數。
樣例
樣例輸入
5 5
--+-+
..|#.
..|##
S-+-T
####.
樣例輸出
2
樣例解釋
如果把滿足性質的方格在地圖上用 X 標記出來的話,地圖如下所示:
--+-+
..|#X
..|##
S-+-T
####X
資料範圍與提示
1≤R,C≤50
題解見連結:https://www.cnblogs.com/hyf200803050946/p/14882614.html