題目描述
希里掉入三夫人的迷宮了,這是乙個真正的迷宮,蜿蜒複雜,希里的目的只有乙個,那就是找到三夫人,到達出口。
給定乙個二維矩陣表示迷宮,你需要做到的是,從迷宮的出口處找到三夫人,再從三夫人處走向終點。
其中』s』表示起始點,'t』表示三夫人處,'e』表示迷宮重點。
'1』表示牆壁,意思是不可達位置,'0』表示通路,意思是可以移動的位置
每次移動可以從上下左右四個方向進行移動。
你需要告訴希里,最短需要走多少步能夠完成上述目標。
輸入第一行乙個n,m分別表示迷宮的大小。
接下來n行每行m字元表示迷宮
2 < n,m <= 50
輸出達成目標的最小步數
樣例輸入
8 81s111111
10000001
11101101
1t001001
10011001
10000001
10000001
111e1111
樣例輸出
13思路:無非就是同樣的動作重複了兩遍,我們先從s出發找到t,再從t出發找到e。兩遍bfs就可以啦。
**如下:
#include
#define ll long long
using
namespace std;
const
int maxx=51;
int d[
2]=,
,,};
struct pll};
char s[maxx]
[maxx]
;int vis[maxx]
[maxx]
;int n,m;
inline
intbfs
(int sx,
int sy,
int ex,
int ey)}}
intmain()
}printf
("%d\n"
,bfs
(sx,sy,tx,ty)
+bfs
(tx,ty,ex,ey));
return0;
}
努力加油a啊,(o)/~ 計蒜客 走迷宮2 bfs
一樣的迷宮,這次要求不是求有多少條出去的路,而是求最短出去的路,使用bfs就可以知道了。需要用乙個char陣列儲存迷宮 乙個int陣列表示距離長度 乙個bool陣列表示是否訪問過 這不是唯一的,還有其它的可能性,可以三合一,如這裡的表示方式 給你乙個 n 行 m 列的二維迷宮。s 表示起點,t 表示...
Week2 作業A 迷宮 bfs
輸入5 5矩陣,1表示牆,0表示可走。找出從左上角到右下角的最短路徑所經過的座標 輸入保證有唯一解 bool型二維陣列vis儲存輸入的01矩陣,1表示牆,0表示可走。map from儲存每乙個經過的座標的前驅結點座標。queue q儲存每一層擴充套件時的中心結點。為方便層層擴充套件時遍歷上下左右四個...
week2作業題 bfs迷宮問題 bfs倒水問題
東東有一張地圖,想通過地圖找到妹紙。地圖顯示,0表示可以走,1表示不可以走,左上角是入口,右下角是妹紙,這兩個位置保證為0。既然已經知道了地圖,那麼東東找到妹紙就不難了,請你編乙個程式,寫出東東找到妹紙的最短路線。input 輸入是乙個5 5的二維陣列,僅由0 1兩數字組成,表示法陣地圖。outpu...