POJ 3984 迷宮問題(深度優先搜尋)

2021-10-08 15:23:49 字數 1121 閱讀 5856

深度優先搜尋

本題要點:

1、題目要求記錄路徑上的每一點的座標,這裡用 vector 來存。

vector> ans 記錄最優的方案,

vector> tmp, 記錄每乙個可行的方案;

2、dfs函式:

遞迴邊界: if(x == 4 && y == 4),

將當前的座標 (x, y) 放到tmp中

往4個方向搜

將當前的座標 (x, y) 從tmp彈出來

#include

#include

#include

#include

using

namespace std;

const

int maxn =5;

int g[maxn]

[maxn]

;bool vis[maxn]

[maxn]

;int dx[4]

=, dy[4]

=;//右上左下

vectorint,

int>

> ans, tmp;

int min_step =20;

void

dfs(

int x,

int y,

int sum)

//sum表示當前累加的距離

return;}

int a, b;

for(

int i =

0; i <4;

++i)

} vis[x]

[y]=

false

; tmp.

pop_back()

;}intmain()

return0;

}/*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

*//*

(0, 0)

(1, 0)

(2, 0)

(2, 1)

(2, 2)

(2, 3)

(2, 4)

(3, 4)

(4, 4)

*/

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表示可以走的路,只能橫著走或豎著走,...