動態規劃(4) 0 1揹包問題

2021-10-10 09:01:11 字數 1050 閱讀 5243

給定一組物品,給出每種物品的價值和重量,每種物品只有一件,在限定重量內,如何選擇,才能使物品總價值最高

窮舉法可能會超時,貪心法不一定得到最優解。

設 f (i

,x

)f(i,x)

f(i,x)

表示前 i 件物品,揹包容量為 x 時的最優價值。

則f (i

,x)=

ma

xf(i,x) = max\

f(i,x)

=max

f (n

,m

)f(n,m)

f(n,m)

即為最優解,n為物品種數,m為最大重量

邊界條件為f(0

,x)=

0,f(

i,0)

=0

f(0,x) = 0,f(i,0) = 0

f(0,x)

=0,f

(i,0

)=0

// tsworld

#include

#include

#include

#include

#include

#include

#include

using

namespace std;

const

long

long maxx =

100;

intmain()

,weight[maxx]=;

int f[maxx]

[maxx]=;

// input the data

cin>>n>>m;

for(

int i =

1;i <= n;i++

)// get the answer

for(

int i =

1;i <= n;i++

)// output the answer

cout<[m]

}

動態規劃 揹包問題

給定n個物品,重量是,價值是,包的容量 承重 是w 問,放入哪些物品能使得包內價值最大 1 需要將問題轉化為子問題,通過遞迴實現,且子問題必然與父問題存在關聯 2 定義v i,j 表示為,當item取自前i個items且揹包capacity j 時,揹包問題的最優解,也即最高的價值。3 從前i個it...

動態規劃 揹包問題

不廢話,直接上 動態規劃,揹包問題。輸入為 int n 物品的種類數。int n weight 各件物品的重量。int n value 各種物品的價值。int w 揹包最大的裝載重量。輸出 v n b 的值,最大的裝載價值。x n 各類物品的裝載數量。author huangyongye publi...

動態規劃 揹包問題

1 開心的金明 問題描述 金明今天很開心,家裡購置的新房就要領鑰匙了,新房裡有一間他自己專用的很寬敞的房間。更讓他高興的是,媽媽昨天對他說 你的房間需要購買哪些物品,怎麼布置,你說了算,只要不超過n 元錢就行 今天一早金明就開始做預算,但是他想買的東西太多了,肯定會超過媽媽限定的n 元。於是,他把每...