題目:
題意:
給出乙個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點度數之和大於等...