揹包模板(01 多重 混合)

2021-09-26 07:41:37 字數 1298 閱讀 8376

01揹包

需要注意的是 j 的迴圈為從大到小

#include

using namespace std;

const

int n=

10010

;int f[n]

;int v[n]

,w[n]

;//v[n]表示價值,w[n]表示體積或者重量

intmain()

for(

int i=

0;icout<

}

多重揹包

一般轉換成01揹包問題,注意二進位制優化

#include

#include

// 多重揹包求得最大價值

#include

#include

using namespace std;

const

int n =

10010

;int v[

110]

, w[

110]

, num[

110]

;//多重揹包:v表示價值,w表示空間,num表示個數

int val[

1010

], weight[

1010];

//01揹包:val表示新的價值,weight表示新的空間

int dp[n]

;int

main()

if(num[i]

>0)

}memset

(dp,0,

sizeof

(dp));

for(

int i =

0; i < count; i++)}

cout<<}return0;

}

混合揹包

#include

#include

using namespace std;

int f[

1100

],p[

1100

],v[

1100

],w[

1100];

intmain()

for(

int i=

1;i<=n;i++

)else

//01和多重揹包}}

cout<;return0;

}

01揹包模板 完全揹包 and 多重揹包(模板)

模版就直接貼 01揹包模板 cpp view plain copy print?01揹包問題 01揹包問題的特點是,每種物品僅有一件,可以選擇放或不放。01揹包問題描述 有n件物品和乙個容量為v的揹包。第i件物品的重量是c i 價值是w i 求解將哪些物品裝入揹包可使這些物品的重量總和不超過揹包容量...

01揹包模板 完全揹包 and 多重揹包(模板)

01揹包模板 01揹包問題 01揹包問題的特點是,每種物品僅有一件,可以選擇放或不放。01揹包問題描述 有n件物品和乙個容量為v的揹包。第i件物品的重量是c i 價值是w i 求解將哪些物品裝入揹包可使這些物品的重量總和不超過揹包容量,且價值總和最大。include define n 1050017...

01揹包模板 全然揹包 and 多重揹包(模板)

模版就直接貼 01揹包模板 01揹包問題 01揹包問題的特點是,每種物品僅有一件。能夠選擇放或不放。01揹包問題描寫敘述 有n件物品和乙個容量為v的揹包。第i件物品的重量是c i 價值是w i 求解將哪些物品裝入揹包可使這些物品的重量總和不超過揹包容量,且價值總和最大。include define ...