csp信奥赛C++高频考点专项训练:【二分答案】案例5:进击的奶牛 📅 发布时间:2026/7/15 1:09:21 👁️ 浏览次数: csp信奥赛C高频考点专项训练【二分答案】案例5进击的奶牛题目描述Farmer John 建造了一个有N NN2 ≤ N ≤ 10 5 2 \leq N \leq 10 ^ 52≤N≤105) 个隔间的牛棚这些隔间分布在一条直线上坐标是x 1 , x 2 , ⋯ , x N x _ 1, x _ 2, \cdots, x _ Nx1,x2,⋯,xN0 ≤ x i ≤ 10 9 0 \leq x _ i \leq 10 ^ 90≤xi≤109。他的C CC2 ≤ C ≤ N 2 \leq C \leq N2≤C≤N头牛不满于隔间的位置分布它们为牛棚里其他的牛的存在而愤怒。为了防止牛之间的互相打斗Farmer John 想把这些牛安置在指定的隔间所有牛中相邻两头的最近距离越大越好。那么这个最大的最近距离是多少呢输入格式第1 11行两个用空格隔开的数字N NN和C CC。第2 ∼ N 1 2 \sim N12∼N1行每行一个整数表示每个隔间的坐标。输出格式输出只有一行即相邻两头牛最大的最近距离。输入输出样例 1输入 15 3 1 2 8 4 9输出 13AC代码#includebits/stdc.husingnamespacestd;constintN1e510;// 最大牛栏数量intn,c,a[N],ma,ans;// n:牛栏总数c:牛的数量a[]:牛栏位置数组ma:最大允许跳过的牛栏数ans:最终答案// 检查是否可以将c头牛以最小间隔x放置boolcheck(intx){intnowa[1];// 记录已放牛的位置intcnt1;// 已放奶牛数for(inti2;in;i){// 遍历后续牛栏if(a[i]nowx){// 当前牛棚可以放奶牛cnt;nowa[i];// 更新now的位置}}returncntc;// 返回是否能放得下c头牛}intmain(){cinnc;for(inti1;in;i)cina[i];sort(a1,an1);// 按位置排序牛栏// 二分查找最大可行解intl1;// 最小可能间隔intra[n]-a[1];// 最大可能间隔首尾距离while(lr){intmid(lr)/2;if(check(mid)){// 当前mid可行尝试更大的值ansmid;lmid1;}else{// 当前mid不可行减小最大值rmid-1;}}coutans;// 输出答案return0;}功能分析问题目标在n个有序牛栏中放置c头牛使得相邻牛之间的最小间隔最大化。这是典型的二分答案问题。核心逻辑排序预处理将牛栏位置排序便于计算间隔。二分框架在可能的最小间隔范围[1, 最大首尾距离]内二分搜索。验证函数check(x)判断是否能以最小间隔x放置c头牛。now变量记录已放牛的位置。cnt变量统计以x为最小间隔最多能放几头牛。判断条件如果cntc则放得下否则放不下。终止条件跳过的栏数超过mama n - c即最多允许跳过的栏数时返回false。复杂度时间复杂度排序复杂度为O(n log n)二分过程为O(log D)D为最大间隔每次check为O(n)总复杂度为O(n log n n log D)适用于n ≤ 1e5。空间复杂度O(n)存储牛栏位置。关键点边界处理首栏必须放置保证至少放置一头牛。完整信奥赛C普及组CSP-J一等奖通关刷题题单及题解请关注专栏https://blog.csdn.net/weixin_66461496/category_12673810.html 点击跳转【秘籍汇总】完整csp信奥赛C学习资料1、csp/信奥赛C完整信奥赛系列课程永久学习https://edu.csdn.net/lecturer/7901 点击跳转2、CSP信奥赛C竞赛拿奖视频课https://edu.csdn.net/course/detail/40437 点击跳转https://edu.csdn.net/course/detail/41081 点击跳转3、csp信奥赛高频考点知识详解及案例实践CSP信奥赛C动态规划https://blog.csdn.net/weixin_66461496/category_13096895.html点击跳转CSP信奥赛C标准模板库STLhttps://blog.csdn.net/weixin_66461496/category_13108077.html 点击跳转信奥赛C提高组csp-s知识详解及案例实践https://blog.csdn.net/weixin_66461496/category_13113932.html 点击跳转4、csp信奥赛冲刺一等奖有效刷题题解信奥赛C普及组CSP-J一等奖通关刷题题单及题解https://blog.csdn.net/weixin_66461496/category_12673810.html 点击跳转信奥赛C普及组csp-j初赛复赛真题题解持续更新https://blog.csdn.net/weixin_66461496/category_12808781.html 点击跳转信奥赛C提高组csp-s初赛复赛真题题解持续更新https://blog.csdn.net/weixin_66461496/category_13125089.html 点击跳转5、GESP C考级真题题解GESP(C 一级二级三级)真题题解持续更新https://blog.csdn.net/weixin_66461496/category_12858102.html 点击跳转GESP(C 四级五级六级)真题题解持续更新https://blog.csdn.net/weixin_66461496/category_12869848.html 点击跳转GESP(C 七级八级)真题题解持续更新https://blog.csdn.net/weixin_66461496/category_13117178.html 点击跳转· 文末祝福 ·#includebits/stdc.husingnamespacestd;intmain(){cout跟着王老师一起学习信奥赛C;cout 成就更好的自己 ;cout csp信奥赛一等奖属于你! ;return0;}
HarmonyOS RDB 模糊搜索变慢怎么办:中式美食菜名、别名和食材关键词怎么分层查询 本地菜谱越来越多以后,搜索响应慢,结果排序还经常把弱相关菜排前面。 中式美食里同一个菜谱会从搜索、分类、收藏、推荐和购物清单多个入口出现,状态一旦没拆清楚,用户看到的就是点了没反应、返回位置丢了、统计不准或者卡片状态串… 2026/7/15 1:07:20
套用 NIST 框架做风控,五步搞定企业安全体系 从混乱到有序:用 NIST 框架重构企业风控体系面对日益复杂的网络威胁,许多企业的安全团队往往陷入“救火式”运维的泥潭:今天修补一个漏洞,明天响应一次钓鱼邮件,缺乏系统性的防御逻辑。这种碎片化的应对方式不仅效率低… 2026/7/15 1:05:20
工艺窗口太窄良率不稳:我用DOE方法找到了最优参数组合 新工艺导入时窗口太窄,温度偏差2度就超规,良率从92%波动到75%。PE调了一周没找到稳定点,我建议用实验设计(DOE)方法系统化寻找最优参数组合。做了一套4因素3水平正交实验,27组实验后找到了温度、压力、流量… 2026/7/15 1:03:19
一个兼顾精度与低功耗的电池包电压检测电路设计 1. 为什么需要低功耗电压检测电路?在便携式设备和物联网节点中,电池续航是用户体验的核心指标。我做过一个智能手环项目,原本预计30天的续航,实际使用不到15天就没电了。经过排查发现,罪魁祸首竟然是电压检测电路——它… 2026/7/15 3:18:17
Cursor从SQLite到PostgreSQL迁移全链路实战(生产环境压测数据:迁移耗时缩短63%) 更多请点击: https://kaifayun.com 第一章:Cursor从SQLite到PostgreSQL迁移全链路实战(生产环境压测数据:迁移耗时缩短63%) 将 Cursor 应用的本地 SQLite 数据库迁移至高并发、强一致的 PostgreSQL 生产环境ÿ… 2026/7/15 3:18:16
如何快速掌握Windows屏幕标注神器:ppInk开源工具完全指南 如何快速掌握Windows屏幕标注神器:ppInk开源工具完全指南 【免费下载链接】ppInk Fork from Gink 项目地址: https://gitcode.com/gh_mirrors/pp/ppInk 在数字化教学、远程会议和产品演示日益普及的今天,寻找一款功能强大且易于使用的屏幕标注工具… 2026/7/15 3:16:16
河道塑料瓶识别标准数据集分享(适用于YOLO系列深度学习分类检测任务) 河道塑料瓶识别标准数据集分享(适用于YOLO系列深度学习分类检测任务) 源码下载 链接:https://pan.baidu.com/s/1VL4VhxE8KdsIg22kFvf-FA?pwdcb3p 提取码:cb3p 复制这段内容后打开百度网盘手机App,操作更方便哦 前言 随着城市化进程加快和塑… 2026/7/15 3:14:15
个人开发者最常用的Git 工作流指令模板 这里精选了个人开发者最高频、最轻量化的5套Git工作流指令模板,去掉了团队协作的冗余环节,拿来就能直接套用。 一、日常单主干开发流(最常用,单人小项目首选) 适用场景:个人小项目、Demo、快速迭代原型&a… 2026/7/15 3:12:14
遗传算法工程落地七道关卡:从种群初始化到收敛验证 1. 这不是教科书里的“遗传算法”,而是我亲手调参跑通27个测试用例后总结的实战路径你点开这篇,大概率正卡在“看懂了选择、交叉、变异,但一写代码就报错”“明明参数设得和论文一样,结果收敛得比蜗牛还慢”“调试三天发现种群初始… 2026/7/15 3:12:14
行星减速机的工作原理是什么?从齿轮运动关系到减速比计算 一、行星齿轮机构的组成 标准行星齿轮机构主要包括: 太阳轮; 行星轮; 内齿圈; 行星架。 太阳轮位于机构中心。 多个行星轮围绕太阳轮均匀布置,行星轮内侧与太阳轮外啮合,外侧与内齿圈内啮合。 行星轮通过轴… 2026/7/15 0:03:00
阅读Java开源框架源码的心得分享! 前几日闲来无事有幸看到了一位博主分享自己阅读开源框架源码的心得,看了之后也引发了我的一些深度思考。我们为什么要看源码?我们该怎么样去看源码? 其中前者那位博主描述的我觉得很全了(如下图所示),就不做… 2026/7/15 0:03:00
【LINUX】驱动 【LINUX驱动】【字符设备】【中断】【Platform】【网课 设备树】【GPIO】【PINCTRL】【INPUT】【IIC】【SPI】【网络驱动】【屏幕驱动】【一 设备树】【二 内核模块编译】【三 基本驱动框架】【四 Platform总线设备驱动框架】【五 驱动子系统】【六 综合】 2026/7/15 0:07:01
Git reset 与 revert 深度对比:5个关键差异与 3 种典型应用场景 Git Reset 与 Revert 深度对比:5个关键差异与3种典型应用场景在团队协作开发中,代码版本管理如同行走钢丝——一步失误可能导致整个项目陷入混乱。作为Git进阶用户,你是否曾在深夜面对错误的提交束手无策?是否在强制推送后收到同事… 2026/7/13 8:31:55
GitHub 学生包申请避坑:5个常见失败原因与开发者工具调试方案 GitHub 学生包申请技术排障指南:5个高频失败场景与开发者工具实战方案第一次尝试申请GitHub学生包时,我盯着屏幕上那个不断转圈的加载动画整整15分钟,最终只等来了一行冰冷的错误提示。这可能是许多开发者共同的经历——明明按照教程操作&… 2026/7/14 18:25:04
冒烟测试用例设计规范:5%-10%覆盖率下的3类核心场景与执行标准 冒烟测试用例设计的黄金法则:5%-10%覆盖率下的精准筛选策略在快节奏的敏捷开发环境中,冒烟测试作为质量保障的第一道防线,其重要性不言而喻。当测试资源有限而时间紧迫时,如何从海量测试用例中精准筛选出那关键的5%-10%࿰… 2026/7/14 5:09:41