#6980. 分类调配(classify)

分类调配(classify)

分类调配(classify)

题目描述

某研究中心准备采购一批设备。

共有 (n) 台不同的设备,每台设备拥有一个正整数编号 (ai)、重量(wi)和使用价值(vi)(a_i)、重量 (w_i) 和使用价值 (v_i)。

研究中心按照设备编号中的最大十进制数字划分设备等级。

例如:

  • 编号 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)。

数据范围

  • (1≤n≤100)(1\le n\le100)
  • (1≤V≤2000)(1\le V\le2000)
  • (1≤ai≤109)(1\le a_i\le10^9)
  • (1≤wi≤2000)(1\le w_i\le2000)
  • (1≤vi≤10000)(1\le v_i\le10000)

测试点编号 层级 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 检查最大规模、组内互斥和容量边界