迷宮問題(求最短路徑長度和最短路徑)

2021-07-26 22:33:51 字數 1120 閱讀 8794

描述

定義乙個二維陣列: 

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)

如果仙島求藥可以理解,( 這題就沒有問題了。求最短路徑的思路一樣。然後就是需要把座標紀錄下來

用結構體存每次走座標的x,y。跟著路徑一起遞迴。自己多畫畫很容易理解的

#includeusing namespace std;

typedef struct ss;

s s[100];

int num = 0;

int step[201][201];

char a[201][201];

int q1, q2, z1, z2;

int pd(int i, int j)

void f(int i, int j, int n)

if (pd(i + 1, j))

} if (pd(i, j + 1))

} if (pd(i - 1, j))

} if (pd(i, j - 1)) }}

int main()

for (int i = 0; i < 5; i++)

} step[0][0] = 0;

f(0, 0, 0);

for (int i = 0;; i++)

return 0;

}

(C )BFS求最短路長度及最短路徑

在一張由0,1構成的圖中,1表示障礙,0表示通路 給定起點s和終點t 求從s到t的最短路長度並輸出路徑 首先bfs是由佇列實現和佇列先進先出的特性,對於求最短路長度,我們可以從終點t開始倒著搜尋,用乙個陣列dist表示每個點到終點t的最短路徑,如果乙個點能由上乙個點一步走到,則將該點入隊,直到隊列為...

迷宮最短路徑問題

問題描述 給定乙個迷宮和乙個起點乙個終點,求起點到終點的最短路徑長度。sample input 說明 5行5列的迷宮,為牆,為路,起點為 0,3 終點為 4,4 sample output 若不可達輸出 1 解答 用bfs的方法,借助乙個佇列實現。1 include2 include3 includ...

最短路 求最長最短路,求最短路的路徑

hdu 1595 find the longest of the shortest include include include include include include include include include include include include include defi...