有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)output第2 - n + 1行,每行3個整數,wi,pi和ci分別是物品體積、價值和數量。(1 <= wi, pi <= 10000, 1 <= ci <= 200)
輸出可以容納的最大價值。input示例
3 6output示例2 2 5
3 3 8
1 4 1
9思路:二進位制拆分;
來,上**:
#include #include#define maxn 200005
#define maxm 500005
using
namespace
std;
intn,m,wi,vi,num;
intdp[maxm],v[maxn],w[maxn],cnt;
char
cget;
inline
void
in(int &now)
}int
main()
if(num) v[++cnt]=vi*num,w[cnt]=wi*num;
}for(int i=1;i<=cnt;i++)
cout
}
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...
51Nod 1086揹包問題 V2(多重揹包)
基準時間限制 1 秒 空間限制 131072 kb 分值 40 難度 4級演算法題 有n種物品,每種物品的數量為c1,c2.cn。從中任選若干件放在容量為w的揹包裡,每種物品的體積為w1,w2.wn wi為整數 與之相對應的價值為p1,p2.pn pi為整數 求揹包能夠容納的最大價值。第1行,2個整...