MZY尋寶(深搜dfs寫的最短路徑)

2021-07-04 10:26:36 字數 974 閱讀 8684

時間限制: 1 sec  

記憶體限制: 128 mb

提交: 165  

解決: 50 [

提交][

狀態][

討論版]

貪心的mzy去乙個迷宮尋寶。已知:若mzy在位置(x, y),他下一次只能移動到(x-1, y)、(x+1, y)、(x, y-1)、(x, y+1)四個位置中的任乙個(前提不能越界)。

畢竟他不是我,我可以直接飛到寶物那裡去。由於mzy比較笨拙,他移動一步需要1分鐘。請你幫他算出找到寶物所需要花費的最少時間。

迷宮是乙個n*m的地圖,圖中只有四個數字。

0:此處是空的,可以走

1:此處有障礙,不可以走

2:mzy起點

3:寶物位置(只有乙個寶物)

題目保證czy至少有一條路可以到達寶物位置。

輸入資料有多組。

每組以兩個整數n和m開始,分別表示迷宮的行數和列數,接下來n行每行有m個數。(1 <= n, m <= 10)

輸出mzy找到寶物的最少需要花費的時間。(以秒為單位)

2 2

0 21 3

60

其實對於走迷宮這種題應該用bfs寫的,不過我dfs學的bfs好。bfs現在還不會。。。所以。。既然沒超時那就貼上來吧

完完全全的模板題~就不在注釋啦~~~\(≧▽≦)/~啦啦啦

#include#define inf 0xfffffff

int x,y,ex,ey,min;

int dx[4]=;

int dy[4]=;

int map[11][11],n,m;

int dfs(int x,int y,int step) }}

int main()

{ int t;

while(scanf("%d%d",&n,&m)!=eof)

{ int step=0;

for(int n=0;n

深搜之最短路徑問題

從起點走到終點的迷宮 若求所走的步數,則先設定 int min1 0x3f 需構造兩個二維陣列,乙個用來儲存地圖,另乙個用來是否已走過 注意入dfs前與出dfs前狀態相同,即注意回溯 關鍵是上下左右四個方向移動,樸素寫法為 include using namespace std int h,l,q ...

奇怪的電梯(深搜dfs)

description 有一天uncle lu做了乙個夢,夢見了一種很奇怪的電梯。大樓的每一層樓都可以停電梯,而且i層樓上有乙個數字。電梯只有四個按鈕 開,關,上,下。上下的層數等於當前樓層上的那個數字。當然,如果不能滿足要求,相應的按鈕就會失靈。例如 3,3,1,2,5代表了,從開始。在,按 上 ...

L2 001 緊急救援 最短路徑,深搜

l2 001 緊急救援 25 分 作為乙個城市的應急救援隊伍的負責人,你有一張特殊的全國地圖。在地圖上顯示有多個分散的城市和一些連線城市的快速道路。每個城市的救援隊數量和每一條連線兩個城市的快速道路長度都標在地圖上。當其他城市有緊急求助 給你的時候,你的任務是帶領你的救援隊盡快趕往事發地,同時,一路...