POJ3984 迷宮問題 簡單BFS 輸出路徑

2021-10-24 14:36:12 字數 910 閱讀 8054

迷宮問題

題意:在乙個5*5的迷宮中,數字0表示為可通過的路,數字1表示為不可通過的牆。問從左上角走到右下角的最短路線,並且輸出路徑。(題目保證只有一組解,所以不用考慮字典序啥的)

題解:據說,題目真的只有一組解,你只要複製樣例中的輸出然後提交就能過。 雖然但是,還是要正兒八經做題的,輸出路徑最近常幹了,甚至自己都已經出過一道輸出路徑的bfs題目了。新增兩個pre陣列記錄前驅節點的座標,最後借助棧從終點往起點遞推,存入所有經過點,再輸出出來即可。

#include

#include

#include

#include

#include

using

namespace std;

int g[6]

[6];

int dir[

2]=,

,,};

int pre_x[6]

[6];

int pre_y[6]

[6];

struct node

node

(int x,

int y):x

(x),

y(y)};

inline

bool

check

(node u)

void

print_path()

while

(!st.

empty()

)}void

bfs(

)for

(int i =

0; i <

4; i++)}

}}intmain()

}bfs()

;return0;

}

POJ3984 迷宮問題

題目 迷宮問題 time limit 1000ms memory limit 65536k total submissions 3183 accepted 1861 description 定義乙個二維陣列 int maze 5 5 它表示乙個迷宮,其中的1表示牆壁,0表示可以走的路,只能橫著走或豎...

POJ 3984 迷宮問題

一道比較簡單的bfs題 include include include include define max 6 using namespace std int map max max px max max py max max int movex 4 movey 4 bool vis max ma...

POJ 3984 迷宮問題

迷宮問題 time limit 1000ms memory limit 65536k total submissions 7047 accepted 4123 description 定義乙個二維陣列 int maze 5 5 它表示乙個迷宮,其中的1表示牆壁,0表示可以走的路,只能橫著走或豎著走,...