(DP)1086 揹包問題 V2

2021-09-26 10:21:37 字數 1117 閱讀 4600

1.0 秒

131,072.0 kb

20 分

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

收起

第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)

輸出可以容納的最大價值。
3 6

2 2 5

3 3 8

1 4 1

9
題解:好久沒做揹包題了,回憶一下,多重揹包模板題;

#include#include#include#include#include#include#include#include#include#include#include#define ullmax 1844674407370955161

#define llmax 9223372036854775807

#define intmax 2147483647

#define re register

#define pushup() tree[rt]=max(tree[rt<<1],tree[rt<<1|1])

using namespace std;

typedef long long ll;

const int n=1e5+5;

int n;

ll dp[n],m; // m 所求最大價值

struct nodef[105];

void one(ll w,ll v)

void two(ll w,ll v)

void work(ll w,ll v,ll num)

ll k=1;

while(kif(num) one(num*w,num*v);

}int main()

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

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

51NOD 1086 揹包問題 V2

1086 揹包問題 v2 基準時間限制 1 秒 空間限制 131072 kb 分值 40 難度 4級演算法題 有n種物品,每種物品的數量為c1,c2.cn。從中任選若干件放在容量為w的揹包裡,每種物品的體積為w1,w2.wn wi為整數 與之相對應的價值為p1,p2.pn pi為整數 求揹包能夠容納...

51nod1086 揹包問題 V2

我都快不會寫二進位制優化多重揹包了。卡了一下常數從rank100 到20 include include include includeusing namespace std define rep i,s,t for int i s i t i define dwn i,s,t for int i ...