#10014. 徐老师的背包问题

    ID: 10014 传统题 文件IO:dp 1000ms 256MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>CSP-J复赛模拟2026T4动态规划01背包模型转化

徐老师的背包问题

题目描述

徐老师最近刚学习了《背包九讲》。

其中有一种“二维背包问题”是这样的:一共有 nn 个物品,每个物品有三种属性 hi,vi,wih_i,v_i,w_i,分别代表重量、体积和价值。

一个背包有两个属性 H,VH,V,分别表示背包能承受的重量上限和体积上限。要求所选物品重量之和不超过 HH,体积之和不超过 VV,并最大化物品总价值。

这个问题可太简单了,徐老师分分钟就 AC 了,但是徐老师总是有一些神奇的想法。

这个神奇背包允许徐老师在开始装物品之前选择一个整数 xx,使背包容量变为 Hx,V+xH-x,V+x,然后再进行物品的选择。选择的 xx 需要使两个容量均非负。

现在徐老师想知道,如果使用这个神奇背包,他能装进背包的物品总价值最大是多少?

输入格式

本题采用文件读写。

  • 读入文件名:dp.in
  • 写出文件名:dp.out

输入第一行包含三个整数 n,H,Vn,H,V,表示一共有 nn 个物品、背包重量上限 HH 和体积上限 VV

接下来 nn 行,每行三个整数 hi,vi,wih_i,v_i,w_i,分别表示第 ii 个物品的重量、体积和价值。

输出格式

输出一个整数,表示最大价值。

样例

5 10 10
0 1 8
2 3 9
4 5 7
10 10 10
5 5 8
25

样例说明

例如选择第 1,2,51,2,5 三个物品,总重量为 77,总体积为 99,总价值为 2525

数据范围与提示

测试点编号 nn H,VH,V
131\sim3 10\le10 H,V300H,V\le300
474\sim7 20\le20
8108\sim10 50\le50 H,V50H,V\le50
111311\sim13 1000\le1000 H300,V=0H\le300,V=0
141614\sim16 V300,H=0V\le300,H=0
172017\sim20 H,V300H,V\le300
  • 对于所有数据,0hi,vi3000\le h_i,v_i\le3001wi1091\le w_i\le10^9