AtCoder DP E - Knapsack 2

AtCoder DP E - Knapsack 2

Knapsack 2

题面翻译

\(N\) 个物品被编号为 \(1, 2, \ldots, N\)。对于 \(1 \leq i \leq N\),物品 \(i\) 的重量是 \(w _ i\),价值是 \(v _ i\)。

太郎君决定从 \(N\) 个物品中选择一些放入背包中带回家。背包的容量为 \(W\),带回的物品的总重量不能超过 \(W\)。

请计算太郎君能带回的物品的最大总价值。

输入格式

输入以以下格式从标准输入中提供:

\(N\) \(W\)

\(w _ 1\) \(v _ 1\)

\(w _ 2\) \(v _ 2\)

\(\ldots\)

\(w _ N\) \(v _ N\)

输出格式

输出太郎君能带回的物品的最大总价值。

限制条件

  • 所有输入均为整数。
  • \(1 \leq N \leq 100\)
  • \(1 \leq W \leq 10 ^ 9\)
  • \(1 \leq w _ i \leq W\)
  • \(1 \leq v _ i \leq 10 ^ 3\)

样例解释 1

可以选择物品 \(1\) 和 \(3\)。这样,总重量为 \(3 + 5 = 8\),总价值为 \(30 + 60 = 90\)。

样例解释 3

可以选择物品 \(2, 4, 5\)。这样,总重量为 \(5 + 6 + 3 = 14\),总价值为 \(6 + 6 + 5 = 17\)。

题目描述

\( N \) 個の品物があります。 品物には \( 1,\ 2,\ \ldots,\ N \) と番号が振られています。 各 \( i \) (\( 1\ \leq\ i\ \leq\ N \)) について、品物 \( i \) の重さは \( w_i \) で、価値は \( v_i \) です。

太郎君は、\( N \) 個の品物のうちいくつかを選び、ナップサックに入れて持ち帰ることにしました。 ナップサックの容量は \( W \) であり、持ち帰る品物の重さの総和は \( W \) 以下でなければなりません。

太郎君が持ち帰る品物の価値の総和の最大値を求めてください。

输入格式

入力は以下の形式で標準入力から与えられる。

\( N \) \( W \) \( w_1 \) \( v_1 \) \( w_2 \) \( v_2 \) \( : \) \( w_N \) \( v_N \)

输出格式

太郎君が持ち帰る品物の価値の総和の最大値を出力せよ。

样例 #1

样例输入 #1

3 8
3 30
4 50
5 60

样例输出 #1

90

样例 #2

样例输入 #2

1 1000000000
1000000000 10

样例输出 #2

10

样例 #3

样例输入 #3

6 15
6 5
5 6
6 4
6 6
3 5
7 2

样例输出 #3

17

提示

制約

  • 入力はすべて整数である。
  • \( 1\ \leq\ N\ \leq\ 100 \)
  • \( 1\ \leq\ W\ \leq\ 10^9 \)
  • \( 1\ \leq\ w_i\ \leq\ W \)
  • \( 1\ \leq\ v_i\ \leq\ 10^3 \)

Sample Explanation 1

品物 \( 1,\ 3 \) を選べばよいです。 すると、重さの総和は \( 3\ +\ 5\ =\ 8 \) となり、価値の総和は \( 30\ +\ 60\ =\ 90 \) となります。

Sample Explanation 3

品物 \( 2,\ 4,\ 5 \) を選べばよいです。 すると、重さの総和は \( 5\ +\ 6\ +\ 3\ =\ 14 \) となり、価値の総和は \( 6\ +\ 6\ +\ 5\ =\ 17 \) となります。

信息

ID
1070
难度
9
分类
(无)
标签
(无)
递交数
1
已通过
1
通过率
100%
上传者