题解:洛谷 P2909 [USACO08OPEN] Cow Cars S
本文分享的必刷题目是从蓝桥云课、洛谷、AcWing等知名刷题平台精心挑选而来并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。欢迎大家订阅我的专栏算法题解C与Python实现附上汇总贴算法竞赛备考冲刺必刷题C | 汇总【题目来源】洛谷P2909 [USACO08OPEN] Cow Cars S - 洛谷【题目描述】在 Cowtopia 的高速公路上有N NN头奶牛1 ≤ N ≤ 50 , 000 1 \leq N \leq 50,0001≤N≤50,000它们被方便地编号为1.. N 1..N1..N分别驾驶着不同的汽车。奶牛i ii可以在M MM条不同的高速车道上行驶1 ≤ M ≤ N 1 \leq M \leq N1≤M≤N并且可以以最大速度S i S_iSi​1 ≤ S i ≤ 1 , 000 , 000 1 \leq S_i \leq 1,000,0001≤Si​≤1,000,000公里/小时行驶。在经历了其他糟糕的驾驶体验后奶牛们讨厌碰撞并采取了极端措施来避免它们。在这条高速公路上奶牛i ii会因为在它前面的每一头奶牛而将速度减少D DD0 ≤ D ≤ 5 , 000 0 \leq D \leq 5,0000≤D≤5,000公里/小时但速度不会低于 0 公里/小时。因此如果在奶牛i ii前面有K KK头奶牛那么它将以max ⁡ [ S i − D × K , 0 ] \max[S_i - D \times K, 0]max[Si​−D×K,0]的速度行驶。虽然奶牛实际上可能比直接在它前面的奶牛行驶得更快但奶牛之间的间距足够大因此一旦奶牛减速就不会发生碰撞。Cowtopia 有一条最低速度法则要求高速公路上的所有车辆都必须以最低速度L LL1 ≤ L ≤ 1 , 000 , 000 1 \leq L \leq 1,000,0001≤L≤1,000,000公里/小时行驶因此有时一些奶牛在遵循上述规则时将无法上高速公路。编写一个程序找出在遵守最低速度限制法的情况下能够在高速公路上行驶的最大奶牛数量。【输入】* 第 1 行四个以空格分隔的整数N NNM MMD DD和L LL* 第 2 行到第N 1 N1N1行第i 1 i1i1行用一个整数描述奶牛i ii的初始速度S i S_iSi​【输出】* 第 1 行一个整数表示可以使用高速公路的最大奶牛数量【输入样例】3 1 1 5 5 7 5【输出样例】2【核心思想】问题分析给定N NN头奶牛的初始速度S i S_iSi​M MM条车道减速规则为前面有K KK头牛时速度变为max ⁡ ( S i − D × K , 0 ) \max(S_i - D \times K, 0)max(Si​−D×K,0)最低限速为L LL。求能上高速的最大奶牛数量。这是一个贪心排序 模拟分配问题关键在于将速度慢的奶牛优先安排减少后续减速影响并用K ⌊ 已安排数 / M ⌋ K \lfloor \text{已安排数} / M \rfloorK⌊已安排数/M⌋计算当前牛前面的牛数量。算法选择贪心排序按速度从小到大排序优先安排速度慢的奶牛。因为速度慢的奶牛对减速更敏感先安排可确保它们在K KK较小时就满足条件车道轮询模拟K a n s / M K ans / MKans/M表示当前要安排的牛前面已有的牛数已安排的a n s ansans头牛平均分配到M MM条车道每条车道有K KK或K 1 K1K1头关键步骤读取输入N , M , D , L N, M, D, LN,M,D,L和N NN个速度S i S_iSi​排序sort(a1, aN1)速度升序贪心安排i ii从1 11到N NNK a n s / M K ans / MKans/M当前牛若加入前面平均有K KK头牛若S i − K × D ≥ L S_i - K \times D \ge LSi​−K×D≥L满足限速a n s 1 ans \mathrel{} 1ans1输出a n s ansans时间/空间复杂度时间复杂度O ( N log ⁡ N ) O(N \log N)O(NlogN)排序主导空间复杂度O ( N ) O(N)O(N)存储速度数组贪心排序的核心思想慢牛优先速度慢的奶牛对减速更敏感S i − K × D S_i - K \times DSi​−K×D更容易低于L LL优先安排可确保它们在K KK较小时就被选中车道均衡a n s / M ans / Mans/M假设牛被均衡分配到M MM条车道当前新牛加入任一车道的最坏情况就是前面有⌈ a n s / M ⌉ \lceil ans / M \rceil⌈ans/M⌉头牛。由于我们按最坏情况估计K ⌊ a n s / M ⌋ K \lfloor ans / M \rfloorK⌊ans/M⌋若此时满足条件则实际安排一定可行最优性保证将速度慢的牛放在前面快的牛放在后面承受更多减速但仍可能满足条件这是最大化数量的最优策略适用于排序后贪心验证 资源均衡分配类问题核心是理解K KK的计算方式和排序策略【解题思路】【算法标签】#普及- #贪心【代码详解】#includebits/stdc.husingnamespacestd;intn,m,d,l,a[50005],ans0;intmain(){cinnmdl;// 输入n、m、d和lfor(inti1;in;i){// 输入n个奶牛的速度cina[i];}sort(a1,an1);// 按照从小到大排序不能将小的放后面因为s-k*d后越来越小for(inti1;in;i){// 遍历n头奶牛intkans/m;// 计算k值将多个ans放到不同m中如ans 1和2对应k 1ans 3和4对应k 2if(a[i]-k*dl)ans;// 按照题意车速不能低于l}coutansendl;// 输出结果return0;}【运行结果】3 1 1 5 5 7 5 2

相关新闻

自动化测试入门到进阶:从接口到UI打造稳定高效测试体系

自动化测试入门到进阶:从接口到UI打造稳定高效测试体系

只要你打开任何一个测试岗位的招聘要求,几乎都能看到“熟悉自动化测试”这一条。很多刚入行或者转行的朋友,第一反应是自动化测试是不是对代码要求特别高,是不是只有大厂才玩得转。我做了几年测试开发和自动化测试落地,想说句实话…

2026/10/9 13:56:49 阅读更多 →
Windows 本地部署微信群机器人实践:WuWu WXBot 架构拆解与配置要点

Windows 本地部署微信群机器人实践:WuWu WXBot 架构拆解与配置要点

一、问题背景与选型依据 先说清要解决什么问题。我手上有 200 来个客户群和若干私聊,原始状态是: 消息靠"未读红点"人工判断,群一多必然漏读,且漏了无法回溯;同一个问题一天重复回答几十次;加人就…

2026/10/9 13:56:49 阅读更多 →
Manus联合创始人拆解:Claude与阿里千问双模型驱动下的TaoToken统一API接入实践

Manus联合创始人拆解:Claude与阿里千问双模型驱动下的TaoToken统一API接入实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 13:55:48 阅读更多 →

最新新闻

燃料智能化管理系统解决方案:从PPT到落地的数据链路与接口设计

燃料智能化管理系统解决方案:从PPT到落地的数据链路与接口设计

简介:这份PPT方案面向火力发电企业的燃料管理与信息化建设人员,系统梳理了燃料智能化管理的整体解决思路。内容从燃料成本约占火电总成本七成的行业背景切入,阐述自2012年以来各大发电集团推动燃料系统智能化升级的动因,并围绕业务…

2026/10/9 14:56:28 阅读更多 →
X切LNOI波导倍频仿真:COMSOL建模与相位匹配实战

X切LNOI波导倍频仿真:COMSOL建模与相位匹配实战

最近研究X切型绝缘体上铌酸锂薄膜(LNOI)的倍频(SHG)转化效率,COMSOL仿真前前后后跑了一个多月,越跑越觉得这东西比想象中有意思得多。LNOI这两年几乎是集成光子学里的“顶流”平台,几百纳米厚的…

2026/10/9 14:56:28 阅读更多 →
智慧零碳园区解决方案:从66页PPT到落地的四层架构与避坑指南

智慧零碳园区解决方案:从66页PPT到落地的四层架构与避坑指南

简介:这份《智慧零碳园区解决方案》PPT面向园区规划者、能源管理者、智慧城市方案商及政企数字化转型从业者,围绕“有温度、善感知、智生长”的数字生命体理念,系统梳理零碳园区从背景认知到落地运营的完整路径。资源包仅含1个pptx文件&#…

2026/10/9 14:56:28 阅读更多 →
信号完整性补充:从时序预算到实际工程排查

信号完整性补充:从时序预算到实际工程排查

写一篇关于"什么是信号完整性?补充"的技术博文,这事儿说难不难,说简单也不简单。因为在很多硬件工程师眼里,信号完整性(Signal Integrity)已经是个被讲烂了的话题,随便一搜就是一堆解…

2026/10/9 14:56:28 阅读更多 →
Altium Designer 17.0.6安装避坑指南:从环境检查到静默部署的完整方案

Altium Designer 17.0.6安装避坑指南:从环境检查到静默部署的完整方案

简介:Altium Designer 17.0.6安装教程PDF,面向电子设计工程师及PCB初学者,解决Altium Designer软件安装、破解与汉化流程不熟悉的问题。资源包内共1个pdf文件,整体大小3.03MB,内容紧凑,以图文步骤方式组织&…

2026/10/9 14:55:27 阅读更多 →
5G网络切片隔离性验证:从测试设计到pytest自动化落地

5G网络切片隔离性验证:从测试设计到pytest自动化落地

去年做5G行业专网交付的时候,客户在验收会上问了我一个很要命的问题:"你说切片隔离,那我车间里的视频监控流量和AGV控制流量在同一个基站下跑,监控业务能不能把控制业务挤垮?你拿什么证明它不会?"…

2026/10/9 14:55:27 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题,隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题,排查到最后发现是ZonedDateTime序列化后时区丢了,用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问:办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好,问题是工作场景经常要在几处环境之间来回切换,每次都先登录跳板机再层层代理,实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及,但真正动手搭过一套能跑起来的 Agent 系统的人都知道,从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地,从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:40 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 10:11:06 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 21:13:17 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 6:17:20 阅读更多 →