迷宮深度優先搜尋 找出一條可行路徑

2021-06-26 18:11:43 字數 612 閱讀 9919

請寫乙個程式,先輸入迷宮的維度m和n,然後輸入這個m * n的迷宮,迷宮位置上的數值為0代表該位置可以通過,為1代表該位置有障礙不能通過,用深度優先搜尋演算法搜出一條從迷宮左上角到右下角的路徑。規定搜尋順序為上、下、左、右。

如:迷宮為2 * 2的:

搜尋從左上角開始,到達右下角的路徑應該是(0,0) (1,0) (1,1)

input

第一行是乙個整數t,代表測試用例個數

接下來有t個迷宮,每個迷宮的格式如下:

第一行有兩個整數m和n,中間用空格隔開,表示迷宮的維度,0 < m, n < 10

接下來有m行,每一行有n個元素,每個元素都是0或者1,注意元素之間是沒有空格的

output

對於每乙個用例,如果用深度優先搜尋演算法能搜尋出路徑,則輸出搜尋到的路徑,路徑的格式如下:

用座標代表每個位置:(x,y),注意是沒有空格的,每兩個座標之間有乙個空格。

如:(0,0) (1,0) (1,1)表示從位置(0,0)走到位置(1,0)再走到位置(1,1)

如果不能搜尋出路徑,則輸出no

sample input

1

2 200

00

sample output

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

問題及 給出迷宮的圖紙和初始終點位置,用dfs求最小步數。include using namespace std int n,m,p,q,min 99999999 int a 51 51 book 51 51 void dfs int x,int y,int step 順時針 右下左上 int tx...

深度優先搜尋應用 走迷宮

走迷宮問題是深度優先搜尋的乙個典型應用,通常迷宮的形狀如下 0為可走的道路,1為牆壁。通常情況下一些變種的模型,會加入一些特殊項,有別的意思,比如數字5代表鑰匙,當然複雜模型先不討論,從最簡單的開始。include include include include using namespace st...

走迷宮(深度優先搜尋版)

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函式用...