POJ3984 BFS廣搜 入門題

2022-07-05 14:18:14 字數 1390 閱讀 4300

迷宮問題

time limit:1000ms

memory limit:65536k

total submissions:20816

accepted:12193

description

定義乙個二維陣列: 

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)

這道題是一道比較簡單的廣搜題目,為什麼是廣搜?因為題意是要找最短路徑,這類題基本上就是用廣搜。

但是與其他直接輸出最短路徑的步數的不同,這道題要輸出的是最短路徑,是要輸出這個路徑,所以就要考慮狀態了,

每乙個狀態都應該儲存到達這個狀態的路徑。其他就沒什麼好說的了,總體上是一道較為簡單的廣搜入門題。

#include "

cstdio

"#include

"iostream

"#include

"queue

"using

namespace

std;

int a[5][5

];bool visit[5][5

];int dx[4]=,dy[4]=;

struct

node;///通過記錄方向來記錄路徑

bool judge(int x,int

y)node&bfs()

}return

cur;

}int

main()

}node ans=bfs();

printf(

"(0, 0)\n");

int x=0,y=0

;

for(int i=0;i)

return0;

}

poj3984(BFS)迷宮路徑

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

POJ3984BFS記錄路徑

定義乙個二維陣列 int maze 5 5 它表示乙個迷宮,其中的1表示牆壁,0表示可以走的路,只能橫著走或豎著走,不能斜著走,要求程式設計序找出從左上角到右下角的最短路線。input 乙個5 5的二維陣列,表示乙個迷宮。資料保證有唯一解。output 左上角到右下角的最短路徑,格式如樣例所示。sa...

POJ 3984迷宮問題(BFS廣搜)

題目貼上 相對於求最短路徑長度的題目,這道題目可能稍微難一點點,因為它要求輸出最短的所有路徑點 思路 定義乙個結構體,有此時遍歷點的x,y座標和該點的父親點 意思就是你的上乙個狀態 比如一條路徑是 0,0 1,1 2,2 則點 2,2 的父親點是 1,1 我們將有父親點的點輸出,沒有父親點的點不輸出...