【模板】混合背包问题
暂无测试数据。
题目描述
有 \(N\) 种物品和一个容量是 \(V\) 的背包。
物品一共有三类:
- 第一类物品只能用 \(1\) 次;
- 第二类物品可以用无限次;
- 第三类物品最多只能用 \(s_i\) 次。
第 \(i\) 种物品的体积是 \(v_i\),价值是 \(w_i\)。
求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。
输出最大价值。
输入格式
第一行两个整数,\(N,V\),用空格隔开,分别表示物品种数和背包容积。
接下来有 \(N\) 行,每行三个整数 \(v_i,w_i,s_i\),用空格隔开,分别表示第 \(i\) 种物品的体积、价值和数量。
- \(si=−1\) 表示第 \(i\) 种物品只能用 \(1\) 次;
- \(s_i=0\) 表示第 \(i\) 种物品可以用无限次;
- \(si>0\) 表示第 \(i\) 种物品可以使用 \(s_i\) 次。
输出格式
输出一个整数,表示最大价值。
样例 #1
样例输入 #1
4 5
1 2 -1
2 4 1
3 4 0
4 5 2
样例输出 #1
8
提示
【数据范围】
对于 \(100\%\) 的数据 \(1\le N\le10^3\),\(1\le v_i,w_i\le10^6\),\(-1\le s_i\le10^4\)。