问题 3455 --混合背包问题

3455: 混合背包问题

时间限制: 1 Sec  内存限制: 256 MB
提交: 2  解决: 2
[提交][状态][讨论版][命题人:]

题目描述

N种物品和一个容量是V的背包。

物品一共有三类:

  • 第一类物品只能用1次(01背包);
  • 第二类物品可以用无限次(完全背包);
  • 第三类物品最多只能用si次(多重背包);

每种体积是vi,价值是wi

求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。
输出最大价值。


输入

第一行两个整数N,V,用空格隔开,分别表示物品种数和背包容积。

接下来有N行,每行三个整数 vi,wi,si,用空格隔开,分别表示第i种物品的体积、价值和数量。

  • si=−1表示第i种物品只能用1次;
  • si=0表示第i种物品可以用无限次;
  • si>0表示第i种物品可以使用si次;

输出

输出一个整数,表示最大价值。

样例输入

4 5
1 2 -1
2 4 1
3 4 0
4 5 2

样例输出

8

提示

0<N,V≤1000

0<vi,wi≤1000

−1≤si≤1000

来源

[提交][状态]