当前位置: 首页 > news >正文

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

原题链接:https://www.luogu.com.cn/problem/P1678

目录

1. 题目描述

2. 思路分析

3. 代码实现


1. 题目描述

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]);elsesum += min(abs(a[l] - b[i]), abs(a[r] - b[i]));}cout << sum << endl;return 0;
}

 

http://www.lryc.cn/news/138056.html

相关文章:

  • 开机自启CPU设置定频
  • 嵌入式Linux开发实操(十二):PWM接口开发
  • 消息中间件介绍
  • [Unity] 基础的编程思想, 组件式开发
  • SVN 项目管理笔记
  • Android获取手机已安装应用列表JAVA实现
  • 【校招VIP】有一个比赛获奖项目和参与的开源小项目,秋招项目竞争力够不够?三个标准,自己都可以估算
  • 量化开发学习入门-概念篇
  • 【草稿】关于文本句子分割(中文+英文)以及向量处理
  • 【瑞吉外卖】所遇问题及解决方法
  • 【Hugo入门】基础用法
  • Java实现一个简单的图书管理系统(内有源码)
  • 网络安全等级保护2.0
  • 【sql】MongoDB 增删改查 高级用法
  • 怎么做才能有效更新和优化产品手册文档
  • #P0867. 小武老师的烤全羊
  • 视频汇聚/视频云存储/视频监控管理平台EasyCVR提升网络稳定小tips来啦!
  • C 语言学习
  • TCP网络连接异常情况的处理
  • 单片机之从C语言基础到专家编程 - 4 C语言基础 - 4.10语句
  • Windows 通过服务名称搜索软件启动路径启动软件
  • 如何更高效的写出更健全的代码,一篇文章教会你如何拥有一个良好的代码风格
  • Java如何调用接口API并返回数据(两种方法)
  • 极狐GitLab 价值流管理之「总时间图」使用指南
  • Mybatis入门和环境搭建
  • React 全栈体系(二)
  • 【Linux】socket编程(二)
  • 七大出海赛道解读,亚马逊云科技为行业客户量身打造解决方案
  • 【Maven教程】(三)基础使用篇:入门使用指南——POM编写、业务代码、测试代码、打包与运行、使用Archetype生成项目骨架~
  • Spring Boot + Spring Data JPA 实现数据库操作的标准示例