c 揹包九講之有依賴的揹包問題

2021-10-01 02:45:19 字數 1337 閱讀 9707

一、揹包九講總述

關於動態規劃問題,最典型的就是揹包九講,先理解揹包九講後再總結關於動態規劃的問題。

二、有依賴的揹包問題這個問題理解起來挺簡單吧,就是如果買一件物品(附件),就必須買另一件(主件)。這裡為了簡化問題,就假設主件不依賴另乙個物品,附件不被另乙個物品依賴,沒有某件物品同時依賴多件物品。。不知道怎麼去講其中的細節,所以還是找幾個例項做做吧,,

注意,它與分組揹包的區別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那...