POJ1776(哈密頓路徑)

2022-06-06 04:27:08 字數 719 閱讀 4884

題目:

題意:

給出乙個n*n的矩陣,若第i個任務做完之後可以做第j個任務,則矩陣的第i行第j列為1,否則為0。機器完成一項任務之後會自動轉到下乙個任務,否則機器會自動停止。

求出最少的啟動次數,輸出每次啟動次數完成的任務個數和任務序列。

思路:題目給出乙個競賽圖(即任意兩點之間有且僅有一條有向邊的有向圖),則競賽圖一定存在哈密頓路徑。題目轉化為求一條哈密頓路徑。

#include 

#include

using

namespace

std;

const

int inf = 0x3ffffffff;

const

int maxn = 1005;

int n, head, t, g[maxn][maxn], ans[maxn];

char s[maxn][maxn];

void hamliton()

else t = j;

}if (!flag) ans[t] = i;

}}int main()

for (int i = 1; i <= n; ++i)

}hamliton();

printf("yes\n");

for (int i = head; ~i; i = ans[i])

return

0;}

POJ1776(哈密頓路徑)

題目 題意 給出乙個n n的矩陣,若第i個任務做完之後可以做第j個任務,則矩陣的第i行第j列為1,否則為0。機器完成一項任務之後會自動轉到下乙個任務,否則機器會自動停止。求出最少的啟動次數,輸出每次啟動次數完成的任務個數和任務序列。思路 題目給出乙個競賽圖 即任意兩點之間有且僅有一條有向邊的有向圖 ...

哈密頓迴路

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

哈密頓迴路

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