E. 【普及】这是完全背包

    传统题 100ms 32MiB

【普及】这是完全背包

题目描述

NN 种物品和一个容量是 VV 的背包,每种物品都有无限件可用

ii 种物品的价值是 wiw_i,体积是 viv_i

请你选择一些物品装入背包,使得这些物品的 总体积不超过背包容量,且总价值最大

其中 总体积 的计算方法如下:

  • 1、给定一个阈值 kk
  • 2、如果装入的物品中,没有一个物品的体积达到 kk 或更大,那么总体积就是装入物品的体积和
  • 3、如果装入的物品中,存在某个物品 ii 的体积达到了 kk 或更大,那么总体积是以下两个部分之和
    • 第一部分:物品 ii 的体积
    • 第二部分:物品 ii 之外的其他物品的体积和 ×0.8\times 0.8,保证每个物品的体积都是 55 的倍数

请你计算最大价值

输入格式

第一行 33 个整数,N,V,kN, V, k,用空格隔开,分别表示物品数量和背包容积和体积阈值

接下来有 NN 行,每行两个整数 wi,viw_i, v_i,用空格隔开,分别表示第 ii 件物品的价值和体积。

输出格式

输出最大价值

3 53 25
100 25
20 5
40 10
240
4 45 21
4 10
1 20
2 20
2 20
16

提示

【样例 1 解释】

  • 可以选择 (100,25),(100,25),(40,10)(100, 25), (100, 25), (40, 10) 这个 33 个物品
  • 总体积是:25+25×0.8+10×0.8=5325 + 25 \times 0.8 + 10 \times 0.8 = 53
  • 总价值:100+100+40=240100 + 100 + 40 = 240

【样例 2 解释】

  • 可以选择 4 个 (4,10)(4, 10)

【数据范围】

对于所有测试数据,均有:

  • 1N100,1V10001 \le N \le 100, 1 \le V \le 1000
  • 1wi,vi,k10001 \le w_i, v_i, k\le 1000
  • 保证所有测试用例中 nn 的总和不超过 51055\cdot 10^5
测试点编号 特殊性质 分值
181 \sim 8 A 4040
9209 \sim 20 6060

特殊性质 A:k>max{vi}k > max\{v_i\},也就是说:问题是纯完全背包

请思考后再点击查看提示

来源