#6590. 【mc生存】卖东西
【mc生存】卖东西
题目描述
你有一个容量为 格的背包。初始时背包里已有 件不同的物品,它们各自占据一个格子且不能出售,因此你只剩下 个空格可以使用。
现在你可以购买 种物品。每种物品用一个字符串 作为名称,并且有:
- :该种物品最多可购买的数量(库存);
- :单件物品的价值;
- :同一个格子最多能堆叠的数量。
相同名称的物品被视为同一种,实际可购买总量为所有同名物品的 之和,单件价值和堆叠数量保证在输入中同名物品完全一致。
同一种物品可以放进同一个格子,只要不超过 件。不同种的物品不能放在同一格。
你需要决定购买哪些物品、数量各多少,使得总价值最大,并且所有物品能完全放入剩余的 个格子中。求最大总价值 。
输入格式
第一行两个整数 ,表示已占格子数和可购买物品种类数。
接下来 行,每行包括三个整数 和一个字符串 ,分别表示该种物品的库存、单件价值和单格堆叠上限。字符串不包含空格。
输出格式
一个整数,表示能买到的最大总价值。
样例
20 3
63 1 64 yinshifen
1 10 1 men
1 1 64 yinshifen
64
样例解释
剩余 个空格。yinshifen 库存共 ,可在一个格子里堆叠 件,总价值 ;men 价值 。显然选择 yinshifen 获得 最优。
数据范围
- (库存可能为 ,表示无法购买)
- (价值可能为 )
- 字符串长度 ,由小写字母组成
- 保证输入中同名物品的 相同