迷宮的最短路徑
給定乙個大小為n*m 的迷宮,迷宮由通道和牆壁組成,每一步可以向鄰接的上下左右四個格的通道移動。請求出從起點到終點所需要的最小步數,請注意,本體假設從起點一定可以移動到終點。
限制條件:n,m <= 100
輸入:#s######. #
.. . . # . . .g#
輸出#include #include using namespace std;
#define max_n 10
#define max_m 10
const int inf = 100000000;
typedef pairp;
char maze[max_n][max_m+1] =
, ,,,
,,,,
,,};
int n = 10, m = 10;
int sx = 0;
int sy = 1;
int gx = 9;
int gy = 8;
int d[max_n][max_m];
int dx[4] = , dy = ;
int bfs()
{ queueque;
// 初始化所有距離為inf
for( int i = 0; i < n;i++)
{for( int j = 0; j
這裡很神奇的用到了乙個pair,pair相當於乙個結構體,可以將每個點的座標記錄下來。
bfs搜尋到的結果按照bfs的過程,就是該題目的最短路徑。
挑戰程式設計 迷宮的最短路徑(BFS)
目錄題解 寬度優先搜尋 題目詳情 description 給定乙個大小為 n m 的迷宮。迷宮由通道和牆壁組成,每一步可以向鄰接的上下左右四格的通道移動。請求出從起點到終點所需的最小步數 限制條件 n,m 100 input 輸入兩個數字 n 和 m,分別表示迷宮的長和寬,用空格隔開 輸入代表迷宮的...
迷宮最短路徑
include include using namespace std const int max n 100,max m 100 const int inf 100000000 使用pair表示狀態時,使用typedef會更加方便一些 typedef pairp 輸入 char maze max ...
迷宮最短路徑
問題描述 小a同學現在被困在了乙個迷宮裡面,他很想從迷宮中走出來,他可以向上 向下 向左 向右移動 每移動一格都需要花費1秒的時間,不能夠走到邊界之外。假設小a現在的位置在s,迷宮的出口在e,迷宮可能有多個出口。問小a想要走到迷宮出口最少需要花費多少秒?並輸出從起點到最近出口的路徑。任務要求 1 迷...