题解:洛谷 P1672 [USACO05FEB] Feed Accounting S
本文分享的必刷题目是从蓝桥云课、洛谷、AcWing等知名刷题平台精心挑选而来并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。欢迎大家订阅我的专栏算法题解C与Python实现附上汇总贴算法竞赛备考冲刺必刷题C | 汇总【题目来源】洛谷P1672 [USACO05FEB] Feed Accounting S - 洛谷【题目描述】约翰想知道上一船饲料是什么时候运到的。在饲料运到之前他的牛正好把仓库里原来的饲料全吃光了。他收到运来的F 1 ( 1 ≤ F 1 ≤ 10 6 ) F1(1\le F1\le 10^6)F1(1≤F1≤106)千克饲料。遗憾的是他已经不记得这是哪一天的事情了。到第D ( 1 ≤ D ≤ 2 × 10 3 ) D(1\le D\le 2\times 10^3)D(1≤D≤2×103)天为止仓库里还剩下F 2 ( 1 ≤ F 2 ≤ F 1 ) F2(1\le F2\le F1)F2(1≤F2≤F1)千克饲料。约翰养了C ( 1 ≤ C ≤ 100 ) C(1\le C\le 100)C(1≤C≤100)头牛每头牛每天都吃掉恰好1 11千克饲料。由于不同的原因牛们从某一天开始在仓库吃饲料又在某一天离开仓库所以不同的两天可能会有差距很大的饲料消耗量。每头牛在来的那天和离开的那天都在仓库吃饲料。给出今天的日期D DD写一个程序判断饲料最近一次运到是在什么时候。今天牛们已经吃过饲料了并且饲料运到的那天牛们还没有吃过饲料。如果最终的答案有多个可能请输出最大的即最近的那一个。【输入】第1 11行四个整数C CCF 1 F1F1F 2 F2F2D DD用空格隔开。第2 22到C 1 C1C1行每行是用空格隔开的两个数字分别表示一头牛来仓库吃饲料的时间和离开的时间。【输出】一个正整数即上一船饲料运到的时间。【输入样例】3 14 4 10 1 9 5 8 8 12【输出样例】6【核心思想】问题分析给定C CC头牛在仓库的进食时间段、初始饲料量F 1 F1F1、第D DD天剩余量F 2 F2F2求饲料最近一次运到的日期。运到当天牛尚未进食之后每天牛按时间段吃饲料。这是一个差分数组 前缀和 逆向扫描问题关键在于用差分统计每天的牛数量从后往前累加找到恰好消耗F 1 − F 2 F1 - F2F1−F2饲料的那一天。算法选择差分数组将每头牛的进食区间[ l , r ] [l, r][l,r]转化为a [ l ] 1 a[l] \mathrel{} 1a[l]1、a [ r 1 ] − 1 a[r1] \mathrel{-} 1a[r1]−1实现O ( 1 ) O(1)O(1)区间标记前缀和还原b [ i ] b [ i − 1 ] a [ i ] b[i] b[i-1] a[i]b[i]b[i−1]a[i]得到每天实际在仓库吃饲料的牛数量逆向扫描从第D DD天往前累加每天的消耗量b [ i ] b[i]b[i]找到累计消耗等于F 1 − F 2 F1 - F2F1−F2的那天即为答案关键步骤读取输入C , F 1 , F 2 , D C, F1, F2, DC,F1,F2,D和C CC条牛的区间[ l i , r i ] [l_i, r_i][li​,ri​]差分标记对于每头牛a [ l i ] 1 a[l_i] \mathrel{} 1a[li​]1a [ r i 1 ] − 1 a[r_i 1] \mathrel{-} 1a[ri​1]−1前缀和还原b [ i ] b [ i − 1 ] a [ i ] b[i] b[i-1] a[i]b[i]b[i−1]a[i]i ii从1 11到D DDb [ i ] b[i]b[i]表示第i ii天吃饲料的牛数逆向扫描i ii从D DD递减到1 11s u m b [ i ] sum \mathrel{} b[i]sumb[i]累加从第i ii天到第D DD天的总消耗若s u m F 1 − F 2 sum F1 - F2sumF1−F2输出i ii并结束要求最近日期逆向首个满足条件的即为最大i ii时间/空间复杂度时间复杂度O ( C D ) O(C D)O(CD)差分标记O ( C ) O(C)O(C)前缀和 逆向扫描O ( D ) O(D)O(D)空间复杂度O ( D ) O(D)O(D)差分数组和前缀和数组差分数组与前缀和的核心思想区间操作降维差分数组将C CC个区间加法转化为2 C 2C2C个单点更新前缀和一次性还原每日实际值逆向贪心从后往前扫描保证找到的是最近的运到日期最大的满足条件的i ii总量守恒F 1 − F 2 F1 - F2F1−F2即为从运到日到第D DD天的总消耗量逆向累加找到恰好匹配点适用于区间覆盖统计 逆向查找匹配点类问题核心是差分高效处理区间和逆向扫描定位答案【解题思路】【算法标签】#普及 #差分【代码详解】#includebits/stdc.husingnamespacestd;// 定义常量constintN2005;// 最大天数范围// 变量定义intc;// 喂养记录的条数intf1;// 第一天之前FJ喂养的数量intf2;// 第d天之后FJ喂养的数量intd;// 总天数inta[N];// 差分数组intb[N];// 前缀和数组表示每天Bessie喂养的次数intmain(){// 输入数据cincf1f2d;// 处理每条喂养记录for(inti1;ic;i){intl,r;// 每条记录的起始天和结束天cinlr;// 使用差分数组// 在l天开始增加一次喂养a[l];// 在r1天减少一次喂养a[r1]--;}// 计算前缀和得到每天Bessie喂养的次数for(inti1;id;i){b[i]b[i-1]a[i];}// 从第d天往前计算intsum0;// 从第i天到第d天的总喂养次数for(intid;i1;i--){sumb[i];// 累加第i天的喂养次数// 检查条件f1 - sum f2// 即sum f1 - f2if(sumf1-f2){coutiendl;// 输出结果break;}}return0;}【运行结果】3 14 4 10 1 9 5 8 8 12 6

相关新闻

Lunar 6.7.11 修复说明:Sync Mode 在 MacBook Air 与 iMac 上改用 nits 同步

Lunar 6.7.11 修复说明:Sync Mode 在 MacBook Air 与 iMac 上改用 nits 同步

桌面应用 【免费下载链接】Lunar Intelligent adaptive brightness for your external monitors 项目地址: https://gitcode.com/gh_mirrors/lu/Lunar 点击查看 免费下载 Lunar 6.7.11 是一个针对 Sync Mode(同步模式) 的定向修复版本。此次…

2026/10/16 6:27:53 阅读更多 →
MooTool Next-Compose 增量演进:MCP stdio 工具链、F03 格式化引擎与更新下载流的工程化落地

MooTool Next-Compose 增量演进:MCP stdio 工具链、F03 格式化引擎与更新下载流的工程化落地

桌面应用开发工具 【免费下载链接】MooTool Handy tool set for developers 项目地址: https://gitcode.com/gh_mirrors/mo/MooTool 点击查看 免费下载 导读 本篇以仓库中的增量开发记录 next-compose/docs/diff/561-mcp-reformat-update-env-net-vault-css-slice…

2026/10/16 6:27:53 阅读更多 →
AtCoder Beginner Contest 478

AtCoder Beginner Contest 478

AtCoder Beginner Contest 478 A - Grapes 题意:有N个人,编号为1到N,现在要把M颗葡萄分给他们。每次按照1, 2, …, N的顺序,每人分一颗,分到第N个人以后再从第1个人开始,直到所有葡萄分完。最后输出每个人分…

2026/10/16 6:27:53 阅读更多 →

最新新闻

Win11地址栏拖拽失效:原因排查与替代方案指南

Win11地址栏拖拽失效:原因排查与替代方案指南

这事还得从上周整理文件说起。我在Win11的资源管理器里打开了一串多级目录,类似D盘-素材库-项目A-最终交付,手头有一份改完的压缩包要归位到上级的“项目A”目录。按照以前用Win10的习惯,我直接把文件往地址栏的面包屑路径上一拖就完事了&…

2026/10/16 7:15:04 阅读更多 →
PostgreSQL内核元数据核心:PG_CLASS系统表字段详解与实战排查指南

PostgreSQL内核元数据核心:PG_CLASS系统表字段详解与实战排查指南

维护基于 PostgreSQL 内核的数据库产品时,几乎每天都会和各种系统表打交道,而 PG_CLASS 是其中最绕不开的一张。HIGHGO 这个名字是我对某个基于 PG 内核的数据库项目的代号,它的目录体系和原生 PostgreSQL 保持一致,所以很多排查思…

2026/10/16 7:15:04 阅读更多 →
WinForms VS风格主界面框架:可继承可调试的桌面UI解决方案

WinForms VS风格主界面框架:可继承可调试的桌面UI解决方案

简介:这是一套高度仿Visual Studio界面风格的WinForms Docking框架源代码,面向C#桌面开发初学者与中级工程师,用于快速构建具备专业级停靠、浮动、标签页管理功能的MDI应用程序。资源包含230个文件,主体为95个C#核心逻辑文件&…

2026/10/16 7:15:04 阅读更多 →
分布式事务实战:8种方案的选型逻辑与踩坑指南

分布式事务实战:8种方案的选型逻辑与踩坑指南

1. 为什么“分布式事务”不是一道选择题,而是一场持续权衡的实战“8种常用的分布式事务解决方案”——这个标题听起来像一份技术选型清单,但在我过去十年参与过的二十多个中大型系统重构项目里,它从来不是“挑一个用”的简单动作。我见过某电…

2026/10/16 7:15:04 阅读更多 →
如何把电视盒子变成全屋打印服务器(Armbian + CUPS 完整实操)

如何把电视盒子变成全屋打印服务器(Armbian + CUPS 完整实操)

如何把电视盒子变成全屋打印服务器(Armbian CUPS 完整实操) 【免费下载链接】amlogic-s9xxx-armbian Supports running Armbian on Amlogic, Allwinner, and Rockchip devices. Support a311d, s922x, s905x3, s905x2, s912, s905d, s905x, s905w, s905…

2026/10/16 7:15:04 阅读更多 →
面向对象核心知识详解:从类与对象到封装继承多态

面向对象核心知识详解:从类与对象到封装继承多态

最近重新翻出自己几年前记的一套面向对象基础笔记,边看边感慨。当年跟着一套讲得很细的Java基础课,逐行敲代码、抄概念、画内存图的日子,其实才是真正把编程底子打牢的阶段。面向对象这四个字,很多新手一听就觉得抽象,…

2026/10/16 7:14:04 阅读更多 →

日新闻

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

个人 AI Agent 平台接入 TaoToken:统一 Key 与 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/16 0:00:05 阅读更多 →
信号与系统频域分析作业解题指南

信号与系统频域分析作业解题指南

1. 作业背景与核心要求解析信号与系统作为电子信息类专业的核心基础课,其作业设计往往直接关联课程的核心知识框架。2026年春季第六次作业的布置,通常对应着课程进展到频域分析的关键阶段。根据常规教学进度推测,本次作业可能涉及以下核心内容…

2026/10/16 0:00:05 阅读更多 →
Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

1. 从一个"四不像"的练手项目说起如果你已经看完了Django的官方教程前几章,跟着敲完了投票应用,大概会有一种"我好像会了,又好像什么都不会"的割裂感。教程里每个知识点都是拆开的——这一章讲模型,下一章讲视…

2026/10/16 0:00:05 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 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/15 0:14:36 阅读更多 →
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/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练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/15 9:49:14 阅读更多 →