0697 混合背包问题 | OJ题库 | CODE STUDY
CODE STUDY
Programming Practice Platform

欢迎回来

0697

混合背包问题

Easy 时间限制 1000 ms 内存限制 262144 KB
模板题 动态规划 背包

题目详情

返回题库

题目描述

有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次;

输入描述

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

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

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

输出描述

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

数据范围

0<N,V≤1000
0<vi,wi≤1000
−1≤si≤1000

测试样例

样例支持多行内容展示
样例1
输入
4 5
1 2 -1
2 4 1
3 4 0
4 5 2
输出
8
editor.py

提交前会先自动运行样例。只有样例全部通过,才会进入后端正式判题。