题解:洛谷 P2909 [USACO08OPEN] Cow Cars S

发布时间:2026/10/9 13:57:06

题解:洛谷 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
延伸阅读

更多相关文章

2026/10/9 13:57:06

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

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

2026/10/9 13:52:05

impeccable:用工程化手段将代码质量变成默认状态

1. 一个词引发的项目灵感:为什么是“impeccable”第一次看到“impeccable”这个词,是在一次跨团队协作的复盘会上。当时有人用它来形容一个交付物——“impeccable”,意思是无可挑剔、零瑕疵。我当时就想,如果把这个词变成一个项目…

2026/10/9 14:52:22

Selenium自动化测试实战:从环境搭建到POM工程化全指南

如果你在测试岗待过一段时间,大概率会遇到这样一个画面:产品迭代快到月底,回归测试却要手动点几百个按钮,点得人眼冒金星。所以我一直觉得,Selenium是测试领域里最值得投入的第一个自动化工具——上手快、资料多、就算…

2026/10/9 14:52:22

ECMS二次开发实战:核心机制、常见坑与笔记体系搭建

1. 从"墨鱼部落格"这个标题里,我读出了什么第一次看到"墨鱼部落格-大量ECMS,开发笔记值得学习"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个个人站长或者独立开发者维护的技术博客,而且…

2026/10/9 14:52:22

PHP全开源聊天室源码实战:WebSocket实时消息与高并发架构

简介:这是一套基于PHP与WebSocket技术构建的全开源H5聊天室源码,面向需要为网站或应用快速集成即时通讯功能的开发者,尤其适合具备一定PHP基础、希望省去从零搭建实时通信框架的人群。资源包共19个文件,约1.5MB,以9个p…

2026/10/9 14:52:22

简单模拟判断机器人应该采取什么动作

代码逐行解析 这段代码实现了一个简单的「指令驱动移动」程序:根据用户输入的指令串(只含 F/B/L/R),让一个点从原点 (0, 0) 出发逐步移动,并打印出完整路线、最终坐标和总步数。 1. compute_route(commands) —— 核心…

2026/10/9 14:52:22

Spring Boot秒杀系统实战:Redis+RabbitMQ高并发源码解析

简介:这是一套基于SpringBoot的电商秒杀系统完整项目源码,面向计算机相关专业的在校学生、教师及企业开发者,尤其适合作为毕业设计、课程设计或项目立项演示的参考方案。项目采用MySQL、SpringBoot、Redis与RabbitMQ技术栈,重点解…

2026/10/9 14:47:22

B站视频AI分拣工具:本地化处理字幕与弹幕的Obsidian知识工作流

1. 这不是收藏夹,是待处理的“视频原料库”你点开B站收藏夹那一刻,心里想的真是“以后慢慢看”吗?我翻过自己三年来的收藏记录——237个视频,平均每个收藏夹里塞着48条,其中62%的视频播放量不足50次,31%甚至…

2026/10/8 10:03:18

Jev+Agent接管浏览器:browser-use实战与jev-ultrafast性能优化

1. 从“Jev”说起:为什么我要把Agent接进浏览器“Jev”这个词最近在圈子里出现的频率越来越高,很多人第一次听到会以为是某个新模型的名字,其实它更像是一种思路——把Jev模型的能力当作底座,通过Agent的方式去接管浏览器&#xf…

2026/10/8 10:03:20

多智能体集群实战:DeepAgents编排、MCP与A2A协议及Skills体系

1. 从"单兵作战"到"集群协同":多智能体编排到底在解决什么问题如果你最近在折腾 Agent 相关的东西,大概率会有一种感觉:单个 Agent 能做的事情,其实很快就摸到天花板了。你给它一个提示词,挂几个工…

2026/10/8 6:05:44

无源低通滤波器设计实战:从RC到LC,手把手教你避开那些坑

/* 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 0:04:27

毕业论文初稿完成后首次进行AIGC疑似度自查的摸底与分流策略

毕业论文初稿完成后首次进行AIGC疑似度自查的摸底与分流策略当数万字的学位论文初稿经历开题、实验、问卷与多轮文献梳理最终成形时,绝大多数研究生都会面临一道全新的形式审查关卡:AIGC 疑似度排查。在高校毕业审核流程中,盲审前的文本检测通…

2026/10/9 0:04:27

食堂节能改造源头工厂,商用厨房设备焕新方案广受好评

商用厨房作为餐饮经营、单位供餐的核心后勤阵地,其设备配置、动线规划与运维体系直接决定后厨作业效率、运营成本与合规性。从基础的灶具、制冷存储设备,到油烟净化、水处理等配套系统,每一个环节的合理性都与食品安全、能耗管控、消防安全挂…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑