誤落迷宮2(BFS)

2021-10-04 16:26:20 字數 1106 閱讀 2242

題目描述

希里掉入三夫人的迷宮了,這是乙個真正的迷宮,蜿蜒複雜,希里的目的只有乙個,那就是找到三夫人,到達出口。

給定乙個二維矩陣表示迷宮,你需要做到的是,從迷宮的出口處找到三夫人,再從三夫人處走向終點。

其中』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...