給定乙個 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 起點 ...