多重揹包模板 51Nod 1086

2022-05-01 23:12:15 字數 1095 閱讀 7548

有n種物品,每種物品的數量為c1,c2......cn。從中任選若干件放在容量為w的揹包裡,每種物品的體積為w1,w2......wn(wi為整數),與之相對應的價值為p1,p2......pn(pi為整數)。求揹包能夠容納的最大價值。

input

第1行,2個整數,n和w中間用空格隔開。n為物品的種類,w為揹包的容量。(1 <= n <= 100,1 <= w <= 50000)

第2 - n + 1行,每行3個整數,wi,pi和ci分別是物品體積、價值和數量。(1 <= wi, pi <= 10000, 1 <= ci <= 200)

output

輸出可以容納的最大價值。
input示例

3 6

2 2 5

3 3 8

1 4 1

output示例

9

注意中間每種商品個數的二進位制優化

#include #include 

#include

#include

#include

#include

#include

using

namespace

std;

#define lowbit(x) (x&(-x))

#define max(x,y) (x>y?x:y)

#define min(x,y) (x#define max 100000000000000000

#define mod 1000000007

#define pi 3.141592653589793238462

#define inf 1000000000

#define mem(a) (memset(a,0,sizeof(a)))

int dp[500005

];int

main()

for(int j=m;j>=k*w;j--)

if(flag==0) break

; }

}printf(

"%d\n

",dp[m]);

}return0;

}

51nod 1086 多重揹包模板

有n種物品,每種物品的數量為c1,c2.cn。從中任選若干件放在容量為w的揹包裡,每種物品的體積為w1,w2.wn wi為整數 與之相對應的價值為p1,p2.pn pi為整數 求揹包能夠容納的最大價值。include include include include includeusing name...

51nod 1086 揹包問題 V2 多重揹包

有n種物品,每種物品的數量為c1,c2.cn。從中任選若干件放在容量為w的揹包裡,每種物品的體積為w1,w2.wn wi為整數 與之相對應的價值為p1,p2.pn pi為整數 求揹包能夠容納的最大價值。input 第1行,2個整數,n和w中間用空格隔開。n為物品的種類,w為揹包的容量。1 n 100...

51nod 1086 揹包問題 V2(多重揹包)

51nod 1086 揹包問題 v2 多重揹包 多重揹包每種有限定的數量,可以轉化為01揹包來做。include include include include include include include using namespace std define ll long long defin...