K 迷宮問題

2021-08-20 08:36:06 字數 936 閱讀 1385

定義乙個二維陣列:

int maze[5][5] = ;

它表示乙個迷宮,其中的1表示牆壁,0表示可以走的路,只能橫著走或豎著走,不能斜著走,要求程式設計序找出從左上角到右下角的最短路線。

input

乙個5 × 5的二維陣列,表示乙個迷宮。資料保證有唯一解。

output

左上角到右下角的最短路徑,格式如樣例所示。

sample input

0 1 0 0 0

0 1 0 1 0

0 0 0 0 0

0 1 1 1 0

0 0 0 1 0

sample output
(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 左上角到右下角的最短路徑,格...