定義乙個二維陣列:
int maze[5][5] = ;
它表示乙個迷宮,其中的1表示牆壁,0表示可以走的路,只能橫著走或豎著走,不能斜著走,要求程式設計序找出從左上角到右下角的最短路線。
乙個5 × 5的二維陣列,表示乙個迷宮。資料保證有唯一解。
左上角到右下角的最短路徑,格式如樣例所示。
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)
這題只需要定義兩個陣列,乙個存當前路徑,另乙個存最短路徑就行了。
下面是**:
#include
using
namespace std;
int x[26]
,y[26
],a[5]
[5],xx[26]
,yy[26]
,min=int_max;
int xx[5]
=;int yy[5]
=;void
print
(int n)
}voidfz(
int n)
}void
dfs(
int x,
int y,
int sum)
for(
int i=
1;i<=
4;i++)}
}int
main()
}dfs(0
,0,1
);print
(min)
;return0;
}
迷宮問題dfs
迷宮問題 棧作為深度優先遍歷 dfs 採用的搜尋方法的特點是盡可能先對縱深方向進行搜尋 可以最快的找到解 include define m 8 define n 8 define maxsize 1000 typedef struct box typedef struct sttype 迷宮問題常用...
迷宮問題dfs
j.迷宮問題 migong problem 1737 discussion description 設有乙個n n 2 n 10 方格的迷宮,入口和出口分別在左上角和右上角。迷宮格仔中分別放0和1,0表示可通,1表示不能,入口和出口處肯定是0。迷宮走的規則如下所示 即從某點開始,有八個方向可走,前進...
迷宮問題 DFS
給定乙個n m方格的迷宮,迷宮裡有t處障礙,障礙處不可通過。給定起點座標和終點座標,問 每個方格最多經過1次,有多少種從起點座標到終點座標的方案。在迷宮中移動有上下左右四種方式,每次只能移動乙個方格。資料保證起點上沒有障礙。思路 經典搜尋題,這篇我用深度優先搜尋來解題,首先我們定義兩個陣列,乙個用來...