題目描述
小明置身於乙個迷宮,請你幫小明找出從起點到終點的最短路程。
小明只能向上下左右四個方向移動。
輸入輸入包含多組測試資料。輸入的第一行是乙個整數t,表示有t組測試資料。
每組輸入的第一行是兩個整數n和m(1<=n,m<=100)。
接下來n行,每行輸入m個字元,每個字元表示迷宮中的乙個小方格。
字元的含義如下:
『s』:起點
『e』:終點
『-』:空地,可以通過
『#』:障礙,無法通過
輸入資料保證有且僅有乙個起點和終點。
輸出對於每組輸入,輸出從起點到終點的最短路程,如果不存在從起點到終點的路,則輸出-1。
樣例輸入
155
s-###
----
-##--
-e#-----
-##
樣例輸出
9
#include
using
namespace std;
typedef pair<
int,
int> pii;
#define x first
#define y second
char a[
110]
[110];
int b[
110]
[110];
int m,n;
int c[4]
[2]=
,,,}
;void
bfs(
int s,
int e));
while
(q.size()
));}
}}}int
main()
if(a[i]
[j]==
'e')}}
bfs(starx,stary);if
(b[endx]
[endy]==-
1)cout<<
"-1"
cout<[endy]
<}return0;
}
#include
using
namespace std;
typedef pair<
int,
int> pii;
#define x first
#define y second
int starx,stary,endx,endy;
char a[
110]
[110];
int b[
110]
[110];
int m,n;
int c[4]
[2]=
,,,}
;int
bfs(
int s,
int e));
while
(q.size()
));}
}}return-1
;}intmain()
if(a[i]
[j]==
'e')}}
bfs(starx,stary)
; cout<[endy]
<}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 起點 ...