AtCoder DP E - Knapsack 2

AtCoder DP E - Knapsack 2

Knapsack 2

题面翻译

NN 个物品被编号为 1,2,,N1, 2, \ldots, N。对于 1iN1 \leq i \leq N,物品 ii 的重量是 wiw _ i,价值是 viv _ i

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

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

输入格式

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

NN WW

w1w _ 1 v1v _ 1

w2w _ 2 v2v _ 2

\ldots

wNw _ N vNv _ N

输出格式

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

限制条件

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

样例解释 1

可以选择物品 1133。这样,总重量为 3+5=83 + 5 = 8,总价值为 30+60=9030 + 60 = 90

样例解释 3

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

题目描述

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

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

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

输入格式

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

N N W W w1 w_1 v1 v_1 w2 w_2 v2 v_2 : : wN w_N vN 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  N  100 1\ \leq\ N\ \leq\ 100
  • 1  W  109 1\ \leq\ W\ \leq\ 10^9
  • 1  wi  W 1\ \leq\ w_i\ \leq\ W
  • 1  vi  103 1\ \leq\ v_i\ \leq\ 10^3

Sample Explanation 1

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

Sample Explanation 3

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

信息

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