#6980. 分类调配(classify)
分类调配(classify)
分类调配(classify)
题目描述
某研究中心准备采购一批设备。
共有 (n) 台不同的设备,每台设备拥有一个正整数编号 。
研究中心按照设备编号中的最大十进制数字划分设备等级。
例如:
- 编号 205 的最大数位是 5;
- 编号 483 的最大数位是 8;
- 编号 111 的最大数位是 1。
为了避免同等级设备之间出现兼容问题,同一个等级最多只能选择一台设备。
不同等级的设备可以同时选择。
现有一个最大承重为 (V) 的运输箱。
求在总重量不超过 (V) 的条件下,能够获得的最大总价值。
输入格式
第一行包含两个整数 (n,V)。
接下来 (n) 行,每行包含三个整数:
a w v
输出格式
输出一个整数,表示最大总价值。
输入输出样例 #1
输入
5 7
12 2 5
20 3 8
43 4 9
54 3 7
65 2 3
输出
17
样例解释
编号 12 和 20 的最大数位都是 2,因此属于同一个等级,最多只能从中选择一台。
编号 43 的最大数位是 4。
编号 54 的最大数位是 5。
编号 65 的最大数位是 6。
选择编号为 20 和 43 的设备,总重量为 (3+4=7),总价值为 (8+9=17)。
数据范围
| 测试点编号 | 层级 | n |
V |
数据特征 | 标准输出 | 设计目的 |
|---|---|---|---|---|---|---|
| 1 | 弱数据 | 1 | 单台设备恰好装入 | 5 | 检查最小规模和基础转移 | |
| 2 | 4 | 5 | 所有设备重量均超过容量 | 0 | 检查不选择任何设备 | |
| 3 | 基础数据 | 3 | 10 | 三台设备的最大数位均为 5 | 30 | 检查同一等级最多选择一台 |
| 4 | 正常数据 | 6 | 12 | 12/21 同属第 2 组,109/890 同属第 9 组 |
53 | 检查最大数位判定及跨组组合 |
| 5 | 边界数据 | 4 | 5 | 两台零重量设备均属于第 0 组 | 24 | 检查 maxDigit(0)=0,同组零重量设备仍只能二选一 |
| 6 | 正常数据 | 10 | 同组高价值重设备与低价值轻设备并存 | 59 | 检查容量允许剩余及组内方案取舍 | |
| 7 | 较强数据 | 单件最高价值不是组合最优 | 55 | 卡按单件价值直接贪心 | ||
| 8 | 6 | 选择组内较轻设备可组合更多等级 | 69 | 检查不能预先只保留每组最高价值设备 | ||
| 9 | 极限价值 | 10 | 0~9 各一个等级,单项价值 2×10⁹ |
20000000000 | 检查十个等级全部组合及 long long |
|
| 10 | 极限规模 | 100 | 2000 | 每个等级 10 台设备,共 100 台 | 10000000000 | 检查最大规模、组内互斥和容量边界 |