5566: 多重背包问题 III
[Creator : ]
Description
本题为多重背包模板题。和多重背包问题 I 相比,本题扩大数据规模。时间复杂度 $O(N*V*logS)$ 还是会 TLE。考虑单调队列来优化,去掉复杂度中的 $logS$。时间复杂度变为 $O(N*V)$。
有 $N$ 种物品和一个容量是 $V$ 的背包。
第 $i$ 种物品最多有 $s_i$ 件,每件体积是 $v_i$,价值是 $w_i$。
求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。
输出最大价值。
有 $N$ 种物品和一个容量是 $V$ 的背包。
第 $i$ 种物品最多有 $s_i$ 件,每件体积是 $v_i$,价值是 $w_i$。
求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。
输出最大价值。
Input
第一行两个整数,$N\ (0 < N \leq 1000),\ V\ (0 < V \leq 20000)$,用空格隔开,分别表示物品种数和背包容积。
接下来有 $N$ 行,每行三个整数 $v_i,\ w_i,\ s_i\ (0 < v_i,\ w_i,\ s_i \leq 20000)$,用空格隔开,分别表示第 $i$ 种物品的体积、价值和数量。
接下来有 $N$ 行,每行三个整数 $v_i,\ w_i,\ s_i\ (0 < v_i,\ w_i,\ s_i \leq 20000)$,用空格隔开,分别表示第 $i$ 种物品的体积、价值和数量。
Output
输出一个整数,表示最大价值。
Sample 1 Input
4 5
1 2 3
2 4 1
3 4 3
4 5 2
Sample 1 Output
10