迷宮問題 bfs

2021-10-10 06:57:49 字數 1160 閱讀 2698

給定乙個 n×nn×n 的二維陣列,如下所示:

int maze[5][5] = ;

它表示乙個迷宮,其中的1表示牆壁,0表示可以走的路,只能橫著走或豎著走,不能斜著走,要求程式設計序找出從左上角到右下角的最短路線。

資料保證至少存在一條從左上角走到右下角的路徑。

輸入格式

第一行包含整數 n。

接下來 nn 行,每行包含 nn 個整數 0 或 1,表示迷宮。

輸出格式

輸出從左上角到右下角的最短路線,如果答案不唯一,輸出任意一條路徑均可。

按順序,每行輸出乙個路徑中經過的單元格的座標,左上角座標為 (0,0)(0,0),右下角座標為 (n−1,n−1)(n−1,n−1)。

資料範圍

0≤n≤10000≤n≤1000

輸入樣例:50

1000

0101

0000

0001

1100

0010

輸出樣例:00

1020

2122

2324

3444

#include

#define x first

#define y second

using

namespace std;

int dx[4]

=, dy[4]

=;typedef pair<

int,

int> pii;

const

int n =

1010

;int n, m;

int g[n]

[n];

int dist[n]

[n];

pii pre[n]

[n];

void

bfs(

int sx,

int sy));

memset

(dist,-1

,sizeof dist)

; dist[sx]

[sy]=0

;while

(q.size()

));}

}}intmain()

return0;

}

迷宮問題bfs

迷宮問題 採用佇列的廣度優先遍歷 bfs 思想是從乙個頂點v0開始,輻射狀地優先遍歷其周圍較廣的區域 找到的解為最優解 include define m 8 define n 8 define maxsize 1000 typedef struct box typedef struct qutype...

迷宮問題BFS

the code 資料結構迷宮.cpp 定義控制台應用程式的入口點。include stdafx.h include include include include define n 4 定義迷宮為4 4 using namespace std struct pot 為記錄路徑的rec準備,座標 x...

迷宮問題bfs

小明置身於乙個迷宮,請你幫小明找出從起點到終點的最短路程。小明只能向上下左右四個方向移動。輸入包含多組測試資料。輸入的第一行是乙個整數t,表示有t組測試資料。每組輸入的第一行是兩個整數n和m 1 n,m 100 接下來n行,每行輸入m個字元,每個字元表示迷宮中的乙個小方格。字元的含義如下 s 起點 ...