小明置身於乙個迷宮,請你幫小明找出從起點到終點的最短路程。
小明只能向上下左右四個方向移動。
輸入輸入包含多組測試資料。輸入的第一行是乙個整數t,表示有t組測試資料。
每組輸入的第一行是兩個整數n和m(1<=n,m<=100)。
接下來n行,每行輸入m個字元,每個字元表示迷宮中的乙個小方格。
字元的含義如下:
『s』:起點
『e』:終點
『-』:空地,可以通過
『#』:障礙,無法通過
輸入資料保證有且僅有乙個起點和終點。
輸出對於每組輸入,輸出從起點到終點的最短路程,如果不存在從起點到終點的路,則輸出-1
因題目本身性質,就不記錄是否走過了,直接弄『#』
#include#includeusing namespace std;
char g[105][105];
int step[4][2]=,,,};
struct nodenod;
int main()
if(g[i][j]=='e')
}nod.x=sx;nod.y=sy;nod.t=0;
queueque;
g[sx][sy]='#';
que.push(nod);
while(!que.empty())}}
if(tag) cout<<-1<}
return 0;
}
BFS之迷宮問題
迷宮問題一直是bfs的經典問題,之前也做了不少,但是一直都是那種求走的最短次數,今天遇到一題需要把最短路徑列印出來。所以就卡住了,看了不少別人的部落格,千篇一律地使用模擬佇列,可是為什麼不直接使用queue呢?題目描述 定義乙個二維陣列 int maze 5 5 它表示乙個迷宮,其中的1表示牆壁,0...
迷宮問題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...