哈密頓路 題解

2022-05-26 18:48:08 字數 784 閱讀 8233

【題目描述】

郵遞員在送信時,為了節省路途,自己規定:每次總是從 n 個村子中選擇其中乙個合適的村子出發,途中每個村子僅且經過一次,送完所有的信。已知各個村子的道路連通情況。輸出所有符合要求的路線。如果沒有輸出「no road」。

【輸入】

第一行:整數 n:村子的個數。接下來是乙個 n*n 的 0、1 矩陣,表示 n 個村子的連同情況,如:a[i,j]=1 ,表示第 i 和第 j 個村子之間有路可走,如果 a[i,j]=0,表示他們之間無路可走。

【輸出】

按序號從小到大輸出所有可行的線路

【樣例輸入】

0 1 0 1 1 0 0

1 0 1 0 1 0 0

0 1 0 0 0 0 1

1 0 0 0 0 0 0

1 1 0 0 0 1 0

0 0 0 0 1 0 1

0 0 1 0 0 1 0

【樣例輸出】

2 3 7 6 5 1 4

3 7 6 5 2 1 4

4 1 2 3 7 6 5

4 1 2 5 6 7 3

4 1 5 2 3 7 6

4 1 5 6 7 3 2

5 6 7 3 2 1 4

6 7 3 2 5 1 4

********************===題解********************==

深搜。首先鄰接表存圖,之後從1開始深搜,用vis陣列記錄是否走過,return時改回false,走過的地方數等於總數時或vis==true時return。在遞迴時同時輸出答案。

哈密頓迴路

圖類 include include include include includeusing namespace std template t為頂點的資料型別,e為圖中邊的權值的資料型別 class graph 返回最大頂點數 int numberofedges 返回當前邊數 t getvalue...

哈密頓迴路

哈密頓迴路好多,其實不是很難,但是看了一天了。看一會睡一會,什麼狀態啊。view code 題目 題目分析 有敵對關係的小朋友,不能坐在一起。最後圍成乙個圈,吃飯。將小朋友看成點,有敵對關係的看成沒有邊,最後構成乙個迴路。哈密頓迴路。小小總結 哈密頓迴路 充分條件 無向連通圖中任意2點度數之和大於等...

哈密頓迴路

quad 設無向圖 g v,e 其中 v 是點集,e 是邊集,n v 表示圖中點的數量,m e 表示圖中邊的數量。hamilton 通路 quad 經過圖 g 中每個節點一次且僅一次的通路稱為 hamilton 通路 hamilton 迴路 quad 經過圖 g 中每個節點一次且僅一次的通路稱為 h...