#6955. D - 背包 1(Knapsack 1)
D - 背包 1(Knapsack 1)
D - 背包 1(Knapsack 1)
**时间限制:**2 秒 **内存限制:**1024 MiB **分值:**100 分 ([atcoder.jp][1])
题目描述
有 (N) 件物品,编号为 (1,2,\ldots,N)。对于每件物品 (i),它的重量为 (w_i),价值为 (v_i)。
太郎准备从这 (N) 件物品中选出若干件,放入背包带回家。背包的容量为 (W),也就是说,所选物品的重量总和不能超过 (W)。
请你求出太郎带回家的物品价值总和的最大值。
数据范围
- 输入中的所有数值均为整数。
- (1 \le N \le 100)
- (1 \le W \le 10^5)
- (1 \le w_i \le W)
- (1 \le v_i \le 10^9)
输入格式
输入从标准输入读入,格式如下:
N W
w_1 v_1
w_2 v_2
⋮
w_N v_N
输出格式
输出一个整数,表示太郎带回家的物品价值总和的最大值。
样例 1
输入
3 8
3 30
4 50
5 60
输出
90
说明
选择第 1 件和第 3 件物品。它们的重量总和为 (3+5=8),价值总和为 (30+60=90)。
样例 2
输入
5 5
1 1000000000
1 1000000000
1 1000000000
1 1000000000
1 1000000000
输出
5000000000
答案可能无法用 32 位整数类型表示。
样例 3
输入
6 15
6 5
5 6
6 4
6 6
3 5
7 2
输出
17
说明
选择第 2、4、5 件物品。它们的重量总和为 (5+6+3=14),价值总和为 (6+6+5=17)。
| 测试点编号 | 层级 | N |
W |
特殊性质 | 标准输出 | 设计目的 |
|---|---|---|---|---|---|---|
| 1 | 弱数据 | 1 | 单件物品、重量恰好等于容量 | 7 | 检验最小规模和容量边界 | |
| 2 | 4 | 5 | 含超重物品;组合优于单件 | 13 | 检验超重物品过滤及组合选择 | |
| 3 | 正常数据 | 3 | 6 | 重复选择同一物品会得到错误答案 | 17 | 检验是否正确实现“每件最多选一次” |
| 4 | 8 | 15 | 多种可行组合,最优解为重量 8+7 |
45 | 检验多物品状态转移和全局最优选择 | |
| 5 | 强数据 | 10 | 100 | 总价值超过 32 位有符号整数范围 | 6400000000 | 检验 long long 存储及较大容量下的计算 |
相关
在以下作业中: