深度優先搜尋
本題要點:
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表示可以走的路,只能橫著走或豎著走,...