#10237. 高考志愿匹配
高考志愿匹配
Problem: 高考志愿匹配
任务总览
任务名称 | 时间限制 | 内存限制 | 分数 |
---|---|---|---|
高考志愿匹配 | 1 sec | 1024 MB | 5 |
题目描述
高考结束了,同学们要开始了紧张的填写志愿的过程,大家希望找一个自己最满意的大学填报方案,请你编程帮忙实现。
现有 m (m ≤ 10^5)
所学校,每所学校预计分数线是 a_i (a_i ≤ 10^6)
。有 n (n ≤ 10^5)
位学生,估分分别为 b_i (b_i ≤ 10^6)
。
根据 n
位学生的估分情况,分别给每位学生推荐一所学校,要求学校的预计分数线和学生的估分相差最小(可高可低,毕竟是估分嘛),这个最小值为不满意度。求所有学生不满意度和的最小值。
输入格式
- 第一行读入两个整数
m
和n
,表示学校数和学生数。 - 第二行共有
m
个整数,表示m
个学校的预计录取分数。 - 第三行有
n
个整数,表示n
个学生的估分成绩。
输出格式
- 一行,输出最小的不满意度之和。(数据保证结果 ≤ 10^10)
输入输出示例
输入示例 1
4 3
513 598 567 689
500 600 550
输出示例 1
32
题目解析
- 每位学生选择一所学校,使其估分和学校分数的差值最小。
- 可以将学校分数排序,对于每位学生,使用二分查找快速找到与其估分最接近的学校分数。
- 时间复杂度为
O(n log m)
,可以在数据范围内高效运行。