深度優先搜尋應用 走迷宮

2021-07-31 17:41:23 字數 647 閱讀 8530

走迷宮問題是深度優先搜尋的乙個典型應用,通常迷宮的形狀如下

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 每次可以向上下左右四個方向任...