acm第八次揹包問題

2021-09-16 14:16:44 字數 905 閱讀 1877

一、01揹包: 有n件物品和乙個容量為v的揹包。(每種物品均只有一件)第i件物品的費用是c[i],價值是w[i]。求解將哪些物品裝入揹包可使價值總和最大。

for i=1..n 

for v=v....0

f[v]=max;

二、完全揹包: 有n種物品和乙個容量為v的揹包,每種物品都有無限件可用。第i種物品的費用是c[i],價值是w[i]。求解將哪些物品裝入揹包可使這些物品的費用總和不超過揹包容量,且價值總和最大。

for i=1…n

for v=0…v

f[v]=max

三、多重揹包: 有n種物品和乙個容量為v的揹包。第i種物品最多有n[i]件可用,每件費用是c[i],價值是w[i]。求解將哪些物品裝入揹包可使這些物品的費用總和不超過揹包容量,且價值總和最大。

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

for (int k = 1; k <= cot[i];k++)

for (int j = 10; j >= w[i]; j–)

dp[j] = max(dp[j], dp[j - w[i]] + v[i])

四、分組揹包:有n件物品和乙個容量為v的揹包。第i件物品的費用是c[i],價值是w[i]。這些物品被劃分為若干組,每組中的物品互相衝突,最多選一件。求解將哪些物品裝入揹包可使這些物品的費用總和不超過揹包容量,且價值總和最大。

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

for(int j = v; j >= 1; j–)

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

dp[j] = max(dp[j - w[i][k]] + p[i][k], dp[j]);

z是分組數,v是揹包體積,n是每組物品數量,w和p分別是第i組第k個物品的體積和價值。

第八次作業

練習題 1 怎麼查出通過 from xx import xx導 的可以直接調 的 法?在test package資料夾中建立 init py檔案,裡邊什麼都不需要編輯。在 中把test package的檔案的路徑加入到python直譯器可以搜尋到的路徑列表中,這裡就用到了python的包sys模組 ...

第八次作業

用python實現k均值演算法,鳶尾花花瓣長度資料做聚類並用散點圖顯示。import numpy as np 隨機生成乙個陣列 x np.random.randint 1,100,20,1 y np.zeros x.shape 0 dtype int k 3iris length 1.4,1.4,1...

第八次作業

問題 答案這個作業屬於那個課程 c語言程式設計ii 這個作業要求在 我在這個課程的目標是 更加熟練掌握markdown語法的相關用法 這個作業在那個具體方面幫助我實現目標 更加熟練的使用markdown,對本週知識總結 參考文獻 pta常見問題解析,c語言程式設計 1.pta實驗作業 1.1 求整數...