走迷宮問題是深度優先搜尋的乙個典型應用,通常迷宮的形狀如下
0為可走的道路,1為牆壁。通常情況下一些變種的模型,會加入一些特殊項,有別的意思,比如數字5代表鑰匙,當然複雜模型先不討論,從最簡單的開始。
#include
#include
#include
#include
using
namespace
std;
//這是設定的狀態轉移變數,分為上下左右4組,每一組的值分別代表x,y的偏移
int dst[4][2]=;
//迷宮,終點設定為數字3,已經走過的節點設定為4
int maze[5][5] = ;
void dfs(int x,int y)
cout
}for(int i=0;i<4;i++)//列舉轉移狀態
}return ;
} int main()
輸出結果
走迷宮(深度優先搜尋版)
includeusing namespace std int a 50 50 book 50 50 n,m,p,q 定義全域性變數,二維陣列a用來儲存n行m列的迷宮,book陣列用來標記。p,q為目的地座標,min記錄最小步數 void dfs int x,int y,int step dfs函式用...
DFS深度優先搜尋之走迷宮
走迷宮 problem description 乙個由n m個格仔組成的迷宮,起點是 1,1 終點是 n,m 每次可以向上下左右四個方向任意走一步,並且有些格仔是不能走動,求從起點到終點經過每個格仔至多一次的走法數。input 第 一行乙個整數t 表示有t 組測試資料。t 110 對於每組測試資料 ...
SDUT 2449 走迷宮(深度優先搜尋)
資料結構實驗之棧與佇列十 走迷宮 time limit 1000 ms memory limit 65536 kib submit statistic discuss problem description 乙個由n m 個格仔組成的迷宮,起點是 1,1 終點是 n,m 每次可以向上下左右四個方向任...