2 完全揹包

2021-10-09 23:38:59 字數 1233 閱讀 1370

完全揹包的場景:

乙個有固定體積v的揹包,有一些物品,往包裡裝,在不超過包的體積的情況下,使得包裡裝的價值最大。每個物品可以重複裝。

n:表示可以裝進包裡的東西的個數

v:表示這個揹包的體積

weight[n]:表示重量的陣列

value[n]:表示價值的陣列

dp[v]:表示包裡的總價值的陣列

weight = [3, 2, 2, 8, 4, 2, 2, 7]

value = [3, 4, 2, 7, 5, 3, 1, 6]

v = 12, n = 8;

那麼這個**為:

i \ j12

3456

78910

111210

0333

6669

99122

0033

3666

99912

3023

4567

891011124

0234

5688

1011

121350

2345

68810

1112136

0234

5688

1011

121372

46810

1214

1618

2022248

2468

1012

1416

1820

2224

行代表包剩餘的體積為j,列代表物品的id

所以最大的價值為24,即全部取7號物品

**實現為:

class

bag_all

;int

weight =

;int a =

bagall(8

,12, value, weight)

; system.out.

println

(a);

}public

static

intbagall

(int n,

int v,

int[

]value,

int[

]weight)

}return dp[v];}

public

static

intmax

(int a,

int b)

}

揹包問題2(完全揹包)

問題的提出 有n種物品,乙個容量為v的揹包,每種物品可以無限的加入揹包,第i種物品的價值為v i 花費為w i 求將那些裝入揹包能讓價值最大且不超過揹包的容量?思路 該題類似於01揹包,唯一的不同就是所有的物品可以無限取,這樣從物品的角度考慮就會有多中方法,不像01中的取或不取 當然01揹包作為最基...

揹包問題2 完全揹包

一,題目 有n種物品和乙個容量為v的揹包,每種物品都有無限件可用。第i種物品的費用是c i 價值是w i 求解將哪些物品裝入 揹包可使這些物品的費用總和不超過揹包容量,且價值總和最大。二,基本思路 從每種物品的角度考慮,與它相關的策略已並非取或不取兩種,而是有取0件 取1件 取2件 等很多種。令f ...

No 2 完全揹包問題

題目 有n種物品和乙個容量為v的揹包,每種物品都有無限件可用。第i種物品的費用是c i 價值是w i 求解將哪些物品裝入揹包可使這些物品的費用總和不超過揹包容量,且價值總和最大。基本思路 這個問題十分類似01揹包,不同的是每種物品有無限件。也就是從每種物品的角度考慮,與它相關的策略已並非取或不取兩種...