一、揹包九講總述
關於動態規劃問題,最典型的就是揹包九講,先理解揹包九講後再總結關於動態規劃的問題。二、有依賴的揹包問題這個問題理解起來挺簡單吧,就是如果買一件物品(附件),就必須買另一件(主件)。這裡為了簡化問題,就假設主件不依賴另乙個物品,附件不被另乙個物品依賴,沒有某件物品同時依賴多件物品。。不知道怎麼去講其中的細節,所以還是找幾個例項做做吧,,
注意,它與分組揹包的區別c++揹包九講之分組揹包問題問題描述fj打算去購物,在此之前,他需要一些盒子來運送要購買的各種物品。每個箱子都分配有一些特定種類的東西(也就是說,如果他要購買其中一種東西,則必須事先購買箱子)。每種東西都有其自身的價值。現在fj的購物金額只有w美元,他打算用這筆錢獲得最高的價值。
輸入值第一行將包含兩個整數,n(箱數1 <= n <= 50)w(fj的貨幣金額1 <= w <= 100000),然後是n行。每行包含以下數字pi(第i個盒子的**1 <= pi <= 1000),mi(第1個= mi <= 10第乙個盒子可以容納的商品數量)和mi對數字,**cj (1 <= cj <= 100),值vj(1 <= vj <= 1000000)
輸出量對於每個測試用例,輸出fj可以得到的最大值
#include
#include
using
namespace std;
int dp[11]
[100001]=
;//總價值
intmain()
//買得起箱子時,箱子價值為0
for(
int j = pi; j <= w; j++
)int c[
100]=;
int v[
100]=;
// cout << "請輸入第" << i << "個箱子包含物品的**與價值:" << endl;
for(
int k =
1; k <= mi; k++)}
//買不買該箱子嘞??那就比較(陣列縱向賦值)
本文參考有依賴揹包問題
揹包九講 01揹包問題
1 01揹包問題描述 已知 有 n 件物品和乙個容量為 v 的揹包。第i件物品的重量為w i 得到的價值是 c i 問題 求解將哪些物品裝入揹包可使價值總和最大。條件 每種物品只有一件,可以選擇放或者不放 2 基本思路 01揹包的特點 每種物品只有一件,可以選擇放或者不放 子問題定義狀態f i v ...
揹包問題模板(揹包九講)
題目 有 n 件物品和乙個容量為 v 的揹包。第 i 件物品的體積 費用 是 c i 價值是 w i 求解將哪些物品裝入揹包可使這些物品的費用總和不超過揹包容量,且價值總和最大。如下 一維陣列 include include include using namespace std define m ...
揹包九講之七(有依賴的揹包問題)
1 2 即物品間存在依賴,比如i依賴於j,表示若選物品i,則必須選物品j 34有很多個箱子,想買箱子中的物品必須先買下箱子,典型的依賴揹包 5將不依賴其他物品的物品稱為主件,依賴其他物品的物品稱為附件 6我們有n個箱子,箱子裡面的物品個數為cnt i 7那麼箱子稱為主件,箱子裡面的物品稱為附件 8那...