小红从 N 个候选载波中选择至多 K 个。每个载波有带宽和频段;同一频段最多选一个,给定的冲突频段也不能同时出现。最大化总带宽。若最优方案不唯一,输出升序编号序列中字典序最小的一组。频段名不区分大小写。
第一行输入 N,K ;第二行输入带宽;第三行输入频段名;第四行输入冲突对数 C ,随后 C 行输入冲突频段对。 保证 1≤ N≤25 , 1≤ K≤min(8,N) ,带宽在 [1,1000] , 0≤ C≤25 ,频段名长度不超过 10。
第一行输出最大总带宽,第二行输出所选载波编号(从 0 开始,升序)。
6 2 100 200 150 300 250 180 n78 n41 n78 n28 n41 n28 1 n28 n41
450 2 3
3 2 10 10 10 n1 n2 n3 0
20 0 1
考点:排序
数据规模 N ≤ 25 | 限制 2 秒 / 256MB | 标准输入输出
参考方向:排序
先用 O(n log n) 排序把无序变有序,后续处理往往就简单了。
思路框架(排序 通法 · 非本题专属)
实现要点:在 C++ 中用 std::sort,Python 用 sorted();注意自定义比较函数的严格弱序。
复杂度:时间 O(n log n) | 空间 O(log n) ~ O(n)
该范式的通法易错点
对照本题
本题在源数据中没有官方考点标签,方向由题面特征推断,仅供参考。
样例 1:输入 6 2 / 100 200 150 300 250 180 / n78 n41 n78 n28 n41 n28 / 1 / n28 n41 → 输出 450 / 2 3
编号 2 与 3 分属不冲突频段,总带宽 450。
样例 2:输入 3 2 / 10 10 10 / n1 n2 n3 / 0 → 输出 20 / 0 1
等带宽方案中字典序最小的是 [0,1]。
解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。
本题来源:2026年-华为-07月15号开发岗。