有 N 个任务和 E 个专家。每个任务按分数选择前 K 个专家,分数相同优先编号小者。随后按任务编号顺序调度:专家当前负载小于容量 C 时分配生效,否则丢弃。最终输出各专家负载平方和以及负载数组。
第一行输入 N,E,K,C ,随后输入 N× E 的整数评分矩阵。 保证 N× E≤5×10^5 , 1≤ K≤ E≤100 , 0≤ C≤ N ,评分在 [0,10^4] 。
第一行输出负载平方和,第二行输出各专家最终负载。
4 3 2 2 1 5 4 8 1 2 3 6 5 2 7 9
9 1 2 2
4 4 2 2 5 5 5 1 2 8 8 9 1 2 9 9 7 7 1 1
13 2 2 1 2
考点:排序
数据规模 K ≤ 100 | 限制 2 秒 / 256MB | 标准输入输出
推荐方向:排序
本题切入点
对每个任务把专家按「评分降序、编号升序」排序取前 K,再按任务编号顺序模拟分配(专家负载 +1 未超容量 C 才生效),最后输出负载平方和与负载数组。
先用 O(n log n) 排序把无序变有序,后续处理往往就简单了。
思路框架(排序 通法 · 非本题专属)
实现要点:在 C++ 中用 std::sort,Python 用 sorted();注意自定义比较函数的严格弱序。
复杂度:时间 O(n log n) | 空间 O(log n) ~ O(n)
该范式的通法易错点
对照本题
样例 1:输入 4 3 2 2 / 1 5 4 / 8 1 2 / 3 6 5 / 2 7 9 → 输出 9 / 1 2 2
最终负载为 [1,2,2]。
样例 2:输入 4 4 2 2 / 5 5 5 1 / 2 8 8 9 / 1 2 9 9 / 7 7 1 1 → 输出 13 / 2 2 1 2
同分时优先选择编号小的专家。
解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。
本题来源:2026年-华为-07月24号AI岗。