迷宮的最短路徑

2022-08-05 08:39:10 字數 773 閱讀 5889

問題描述:

給定乙個大小為n*m的迷宮,每一步可以走上下左右四個方向,假設一定可以到到達終點,求達到終點的最小步數

輸入:s為起點,g為終點

思路:使用深入優先搜尋的方法

**:

# include # include 

using

namespace

std;

intn, m;

char map[100][100

];int isused[100][100] = ;

int dfs_search(int i, int

j)

else

if ( i + 1

<= n - 1 && map[i+1][j] != '

#' && isused[i+1][j] == 0

)

if ( j - 1 >= 0 && map[i][j-1] != '

#' && isused[i][j-1] == 0

)

if ( j + 1

<= m - 1 && map[i][j+1] != '

#' && isused[i][j+1] == 0

)

return

mindistance;

}}int

main()

}int result = dfs_search(0, 1

); cout

return0;

}

迷宮最短路徑

include include using namespace std const int max n 100,max m 100 const int inf 100000000 使用pair表示狀態時,使用typedef會更加方便一些 typedef pairp 輸入 char maze max ...

迷宮最短路徑

問題描述 小a同學現在被困在了乙個迷宮裡面,他很想從迷宮中走出來,他可以向上 向下 向左 向右移動 每移動一格都需要花費1秒的時間,不能夠走到邊界之外。假設小a現在的位置在s,迷宮的出口在e,迷宮可能有多個出口。問小a想要走到迷宮出口最少需要花費多少秒?並輸出從起點到最近出口的路徑。任務要求 1 迷...

迷宮的最短路徑

雖然在網上找不到題目,但這題實在是太經典了,好多搜尋題目都是從它變形來的 從s走到g,不能走 測試資料 10 10 s g include include includeusing namespace std const int inf 100000000 define max n 105 defi...