P1678 烦恼的高考志愿
https://www.luogu.com.cn/problem/P1678
涉及知识点:模拟,贪心,排序,二分
橙色题
涉及知识点:模拟,贪心,排序,二分
橙色题
思路:
如果仅仅是套循环的话显然在数据比较大的情况下是不够优化 的,所以我们可以先把得到的分数线排序再二分操作。
这道题二分的原理很简单,因为我们求的是某一个学生和某一个分数线最小的差的绝对值,当我们采用二分的时候,就会很快逼近我们要找的那个分数线,并且在其附近波动,只需要无脑记录在波动过程中出现过的最小的差的绝对值,就可以找到题目的答案了
代码:
方法二:
思路:
首先定义两个变量,为l,r,分别为查找范围的左边界和右边界。接着while循环,首先判断while循环的条件是l<r,接着在循环里定义一个叫mid的变量,mid=(l+r)/2;然后判断:如果a[mid],即录取分数线数组中的第mid个元素小于或等于那位同学的分数,mid+1赋值给l,否则,mid赋值给r。
最后查找完后,那么求录取分数线数组中的第l-1个元素和录取分数线数组中的第l个元素他们两与那位同学的估分的绝对值,那么答案就累加两个绝对值中最小的。
最后输出解即可。
代码:
__EOF__

本文作者:灰の魔女伊蕾娜
本文链接:https://www.cnblogs.com/2elaina/p/16454227.html
关于博主:编程小萌新一名,希望从今天开始慢慢提高,一步步走向技术的高峰!
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/2elaina/p/16454227.html
关于博主:编程小萌新一名,希望从今天开始慢慢提高,一步步走向技术的高峰!
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!