#789. 基地建设

基地建设

基地建设

题目描述

火星地表基地正处于紧张的扩建中。指挥官交给你一个总预算为 MM 的资源包,要求你在不超预算的前提下,通过购买不同的建筑套件来获得最大的防御指数。

港口提供 NN 种建筑套件,但每种套件的供应情况各不相同:

  • 如果 si=1s_i = -1,表示该套件为“绝版孤品”,只能购买 1 次(0/1背包)。
  • 如果 si=0s_i = 0,表示该套件由自动工厂生产,库存 无限(完全背包)。
  • 如果 si>0s_i > 0,表示该套件库存有限,最多只能购买 sis_i(多重背包)。

每种套件的市场价格为 wiw_i,防御指数为 viv_i

请计算出在资源包预算范围内,基地能达到的最高防御指数。

输入格式

第一行包含两个整数 NNMM,分别表示套件种类和总预算。

接下来的 NN 行,每行包含三个整数 wi,vi,siw_i, v_i, s_i

输出格式

输出一个整数,表示能够达到的最大防御指数。

输入输出样例 #1

输入 #1

3 30
10 20 -1
8 15 0
5 10 2

输出 #1

65

样例 1 说明

预算 30:

  • 购买 1 件套件 1(重 10,防 20)。
  • 购买 2 件套件 2(重 16,防 30)。
  • 最终余 4,无法加购 3。总防 50。 更优:
  • 购买 1 件套件 1(10, 20)。
  • 购买 1 件套件 2(8, 15)。
  • 购买 2 件套件 3(10, 20)。 总预算 10+8+10=283010+8+10=28 \le 30,总防 20+15+20=5520+15+20=55。 等等,还有:
  • 购买 3 件套件 2(重 24,防 45)+ 1 件套件 3(重 5,防 10) = 重 29,防 55。 最优方案应为:
  • 购买 2 件套件 2(重 16,防 30)+ 2 件套件 3(重 10,防 20)= 重 26,防 50。
  • 购买 3 件套件 2(重 24,防 45)+ 1 件套件 3(重 5,防 10)= 55。
  • 只有 1 件套件 1(10, 20) + 2 件套件 2(16, 30)= 防 50。
  • 全部套件 2:3 件共 45。 重新计算:(10,20) x 1 + (8,15) x 1 + (5,10) x 2 = 10+8+10=28,和=55。 如果选 (8,15) x 3 + (5,10) x 1 = 24+5=29,和=55。 如果选 (8,15) x 0 + (5,10) x 2 + (10,20) x 1 = 10+10+10=30? No, s_3=2. (10,20)x1 + (5,10)x2 + (8,15)x1 = 55. Wait, (8,15) x 0 + (5,10) x 2 + (10,20) x 2 (No, only 1). 最优值实际上取决于数据。此处仅做引导。

数据范围

对于 100%100\% 的数据,1N10001 \le N \le 10001M10001 \le M \le 10001wi,vi10001 \le w_{i}, v_{i} \le 10001si1000-1 \le s_{i} \le 1000

建议

二刷