定義乙個二維陣列:
int maze[5][5] = ;
它表示乙個迷宮,其中的1表示牆壁,0表示可以走的路,只能橫著走或豎著走,不能斜著走,要求程式設計序找出從左上角到右下角的最短路線。
input
乙個5 × 5的二維陣列,表示乙個迷宮。資料保證有唯一解。
output
左上角到右下角的最短路徑,格式如樣例所示。
sample input
0 1 0 0 0sample output0 1 0 1 0
0 0 0 0 0
0 1 1 1 0
0 0 0 1 0
(0, 0)(1, 0)
(2, 0)
(2, 1)
(2, 2)
(2, 3)
(2, 4)
(3, 4)
(4, 4)
大概思路為:用bfs尋找路徑 同時記錄下各個點的前驅 最後遞迴回溯輸出
#include#include#include#include#includeusing namespace std;
int map[5][5];
int vis[5][5];
int fx[4]=;
int fy[4]=;
int sx=0,sy=0;
struct node
q[30];
int valid(int x,int y)//判斷越界
void print(int pos)//遞迴回溯輸出
}void bfs()//廣搜求出路徑
{ int front=0,rear=1;
q[front].x=sx;
q[front].y=sy;
q[front].pre=-1;
while(front
K 迷宮問題 POJ 3984
acm icpc 2018 world finals language default 迷宮問題 time limit 1000ms memory limit 65536k total submissions 27931 accepted 16104 description 定義乙個二維陣列 int...
K 老鼠走迷宮
現在乙隻老鼠被困在了迷宮裡!你需要判斷老鼠能否走出迷宮。老鼠只能向上下左右四個方向移動。我們認為只要老鼠走到了迷宮的邊界即算走出迷宮。第一行輸入兩個整數 nn,mm 1 leqslant n,m leqslant 100 1 n,m 100 表示迷宮地圖的尺寸。接下來輸入 nn 行,每行 mm 個字...
K 迷宮問題 POJ 3984 廣度搜尋
poj 3984 定義乙個二維陣列 int maze 5 5 它表示乙個迷宮,其中的1表示牆壁,0表示可以走的路,只能橫著走或豎著走,不能斜著走,要求程式設計序找出從左上角到右下角的最短路線。input 乙個5 5的二維陣列,表示乙個迷宮。資料保證有唯一解。output 左上角到右下角的最短路徑,格...