【洛谷】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

相关文章
|
3月前
|
安全 前端开发 算法
IT专业入门,高考假期预习指南
IT专业入门,高考假期预习指南
38 1
IT专业入门,高考假期预习指南
|
C语言
【蓝桥杯刷题】盗版Huybery系列之手抓饼赛马
【蓝桥杯刷题】盗版Huybery系列之手抓饼赛马
103 0
|
存储 人工智能 算法
【2021年蓝桥省赛真题】赛前最后冲刺,省一我来啦
【2021年蓝桥省赛真题】赛前最后冲刺,省一我来啦
328 0
|
网络协议
【自考】总结
【自考】总结
70 0
|
移动开发 小程序 程序员
这一年,熬过许多夜,也有些许收获 | 2022年终总结
弹指一挥间,时间如白驹过隙。光阴似箭,如月如梭,时间如闪电,转瞬即逝。一说到年终总结,好像都离不开这样煽情的开场白。但不可否认的是,时间确实过得很快,一晃一年又没了。
154 0
这一年,熬过许多夜,也有些许收获 | 2022年终总结
|
新零售 机器学习/深度学习 人工智能
获得【ET勋章】后的感想
获得【ET勋章】后的感想
152 0
获得【ET勋章】后的感想
|
算法
每日一题冲刺大厂 第二十四天 开心的金明
大家好,我是泡泡,给大家带来每日一题的目的是为了更好的练习算法,我们的每日一题为了让大家练到各种各样的题目,熟悉各种题型,一年以后,蜕变成为一个不一样的自己!
98 0
|
机器学习/深度学习 算法 测试技术
面试官在“逗”你系列:到底应该怎么爬楼梯?! | 牛气冲天新年征文
算法题是在面试过程中考察候选人逻辑思维能力、手写代码能力的一种方式,因为有一句古话说的好:“说一千道一万,不如写段代码看一看”。今天我们就来个单刀直入,直奔主题,从一个真实面试题到底怎么爬楼梯来聊一聊算法中的动态规划 。
200 0
|
算法 开发者
在家待着,不如刷刷这些招聘模拟题!在线编程周赛邀你挑战
阿里云开发者社区在线编程免费开放,做题还能赢好礼。
在家待着,不如刷刷这些招聘模拟题!在线编程周赛邀你挑战
|
云安全 安全
今天和朋友们做了五道新春大餐!
农历新年将至 安全君携几位好伙伴们, 给大家献上几道“新春大餐”。 愿您在新的一年里, 安心、顺心、省心! 第一道: 阿里云与PCCW Global  共同为全球用户提供DDoS防御服务 让更多企业的业务, 穿上稳定、有效的防护铠甲。
1879 0