【洛谷】P1678 烦恼的高考志愿

简介: 洛谷 P1678 烦恼的高考志愿

1. 题目描述

image.png

2. 思路分析

将每个学校的分数线用sort()升序排序,再二分查找每个学校的分数线,通过二分找到每个同学估分附近的分数线

最后特判一下:

如果每个同学的估分都比最低分数线低。直接让最低的分数线减同学估分,然后取绝对值即可,

如果每个同学的估分都比最高分数线高。直接让最高的分数线减同学估分,然后取绝对值即可。

3. 代码实现

#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int N = 1e5 + 10;
int a[N], b[N], n, m;
ll sum;

int main()
{
   
    cin >> m >> n;
    for (int i = 1; i <= m; i++) cin >> a[i];
    for (int i = 1; i <= n; i++) cin >> b[i];
    sort(a + 1, a + m + 1);
    for (int i = 1; i <= n; i++)
    {
   
        int l = 0, r = m + 1;
        while (l + 1 < r)
        {
   
            int mid = (l + r) >> 1;
            if (a[mid] <= b[i]) l = mid;
            else r = mid;
        }
        if (b[i] <= a[1])  //特判同学估分比分数线数都低的情况
            sum += abs(a[1] - b[i]); 
        else if (b[i] >= a[m])  //特判同学估分比分数线都高的情况
            sum += abs(a[m] - b[i]);
        else
            sum += min(abs(a[l] - b[i]), abs(a[r] - b[i]));
    }
    cout << sum << endl;
    return 0;
}

image.png

相关文章
|
4月前
|
安全 前端开发 算法
IT专业入门,高考假期预习指南
IT专业入门,高考假期预习指南
42 1
IT专业入门,高考假期预习指南
10月自考总结
10月自考总结
|
存储 人工智能 算法
【2021年蓝桥省赛真题】赛前最后冲刺,省一我来啦
【2021年蓝桥省赛真题】赛前最后冲刺,省一我来啦
336 0
|
网络协议
【自考】总结
【自考】总结
74 0
|
算法 C++ Python
昨晚学妹参加了B站秋招笔试,还想考考我?
昨晚学妹参加了B站秋招笔试,还想考考我?
109 0
|
测试技术
从打螺丝到月薪9.5k技术岗,只因选择了柠檬班进行培训学习
近些年,各行各业的就业趋势都不容乐观,在从事软件测试岗位前,其实我干过不少的工作,送过外卖、跑过代驾、进厂打过螺丝、做过产线组长……最后好在峰回路转,让我偶然了解到了软件测试,并通过在柠檬班系统地学习软件测试,才找到这为之让我觉得理想的未来之路。
143 0
|
移动开发 小程序 程序员
这一年,熬过许多夜,也有些许收获 | 2022年终总结
弹指一挥间,时间如白驹过隙。光阴似箭,如月如梭,时间如闪电,转瞬即逝。一说到年终总结,好像都离不开这样煽情的开场白。但不可否认的是,时间确实过得很快,一晃一年又没了。
158 0
这一年,熬过许多夜,也有些许收获 | 2022年终总结
试题历届真题跑步锻炼【第十一届】【省赛】【B组】(C++)
题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 小蓝每天都锻炼身体。正常情况下,小蓝每天跑 11 千米。如果某天是周一或者月初(11 日),为了激励自己,小蓝要跑 22 千米。如果同时是周一或月初,小蓝也是跑 22 千米。 小蓝跑步已经坚持了很长时间,从 20002000 年 11 月 11 日周六(含)到 20202020 年 1010 月 11 日周四(含)。请问这段时间小蓝总共跑步多少千米?
147 0
|
SQL 前端开发 Java
Java开发:19届二本技术渣,校招与工作一个月辞职后的上岸之路
Java开发:19届二本技术渣,校招与工作一个月辞职后的上岸之路
175 0