#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 位学生的估分情况,分别给每位学生推荐一所学校,要求学校的预计分数线和学生的估分相差最小(可高可低,毕竟是估分嘛),这个最小值为不满意度。求所有学生不满意度和的最小值。

输入格式

  • 第一行读入两个整数 mn,表示学校数和学生数。
  • 第二行共有 m 个整数,表示 m 个学校的预计录取分数。
  • 第三行有 n 个整数,表示 n 个学生的估分成绩。

输出格式

  • 一行,输出最小的不满意度之和。(数据保证结果 ≤ 10^10)

输入输出示例

输入示例 1

4 3
513 598 567 689
500 600 550

输出示例 1

32

题目解析

  • 每位学生选择一所学校,使其估分和学校分数的差值最小。
  • 可以将学校分数排序,对于每位学生,使用二分查找快速找到与其估分最接近的学校分数。
  • 时间复杂度为 O(n log m),可以在数据范围内高效运行。