奥赛一本通 1423 种树

发布时间:2026/10/27 7:17:14

奥赛一本通 1423 种树 1423 种树题目大意给定 $m$ 个范围在 $1 \sim n$ 的区间每个区间都有一个种树数量的最少要求求需要种树的最少数量。知识要点排序、贪心、二分解题思路 1将所有区间按右端点排序统计前面区间种到本区间的树数量不满足要求的则尽可能在区间末尾新种一些树时间复杂度为 $O(m \log m mn)$。参考代码 1#includebits/stdc.husingnamespacestd;structRegion{intb,e,t;}E[5005];boolflag[30005];boolcmp(Region A,Region B){returnA.eB.e;}intmain(){intn,m,ans0;scanf(%d%d,n,m);for(inti0;im;i)scanf(%d%d%d,E[i].b,E[i].e,E[i].t);sort(E,Em,cmp);for(inti0;im;i){intcnt0;//已种树的数量for(intjE[i].b;jE[i].ecntE[i].t;j)if(flag[j])cnt;ansE[i].t-cnt;for(intjE[i].e;cntE[i].t;j--)if(!flag[j])flag[j]1,cnt;}printf(%d\n,ans);return0;}解题思路 2将所有种树的位置维护为若干区间显然这些区间的数量不超过 $m$。统计前面区间种到本区间的树数量时使用二分查找确定当前包含哪些已经种树的位置区间然后利用前缀和即可计算。需要新种树时就是从当前区间末尾开始向前延长遇到上一个已经种树区间就直接合并即可时间复杂度为 $O(m \log m)$。参考代码 2#includebits/stdc.husingnamespacestd;structRegion{intb,e,t;}E[5005],P[5005];// P 记录种树的连续区间, t 值为种树总量的前缀和boolcmp(Region A,Region B){returnA.eB.e;}intmain(){intn,m,ans0,num0;// num 记录种树区间的个数scanf(%d%d,n,m);for(inti0;im;i)scanf(%d%d%d,E[i].b,E[i].e,E[i].t);sort(E,Em,cmp);for(inti0;im;i){intl0,rnum;//二分查找左端点所在区间while(lr){intmid(lr1)/2;if(P[mid].eE[i].b)lmid;elsermid-1;}intcntP[num].t-P[l].t;//统计已种树的数量if(l1numP[l1].bE[i].b)cnt-E[i].b-P[l1].b;if(cntE[i].t)continue;P[num]{E[i].e1,E[i].e1,ans};//创建新的空区间左闭右开ansE[i].t-cnt;while(cntE[i].t){if(P[num].b-P[num-1].eE[i].t-cnt){//合并到上一区间cntP[num].b-P[num-1].e;P[num-1].eP[num].e;num--;}else{//延长最后一个种树区间P[num].b-E[i].t-cnt;break;}}P[num].tans;//最后一个区间的前缀和就是答案}printf(%d\n,ans);return0;}
延伸阅读

更多相关文章

2026/10/27 1:03:47

STM32CubeMX打开旧IOC文件UI白屏:原因排查与修复方案

1. 问题现象与影响:6.18.0打开旧IOC文件时到底发生了什么如果你最近把手头的STM32CubeMX升级到了6.18.0,又恰好在用一两年前甚至三四年前创建的旧工程,那你大概率撞上了这个灵异现象:双击.ioc文件,CubeMX启动logo正常闪…

2026/10/24 19:02:41

GEO 优化:生成式 AI 时代企业数字信息基建的新命题

随着大模型工具逐步融入商业信息检索场景,不少用户在筛选供应商、比对产品、寻找服务时,不再只依赖传统搜索引擎的网页列表,会直接借助 AI 问答获取参考建议。传统 SEO 主要面向网页搜索引擎,侧重网页排名与流量获取;而…

2026/10/26 8:28:08

I3C Controller初始化踩坑指南:从总线复位到动态地址分配

前阵子调一块新板子,I3C Controller 初始化一直卡在同一个位置:总线复位之后,动态地址分配那一步总是超时。I3C 这个接口从 MIPI 联盟推出到现在,已经被大量传感器、PMIC、摄像头模组采用,但很多做嵌入式固件的朋友还是…

2026/10/27 7:13:32

JSON请求体设计与实践:从基础到高级应用

1. JSON请求体基础概念解析JSON(JavaScript Object Notation)作为现代Web开发中最常用的数据交换格式,其作为HTTP请求体的使用场景几乎覆盖了所有前后端交互领域。与早期广泛使用的XML相比,JSON具有结构简洁、解析高效、可读性强等…

2026/10/27 7:13:32

基于T3 Stack的TypeScript全栈脚手架t3code落地实践指南

t3code 是我最近给团队搭的一套 TypeScript 全栈脚手架代号。当时手头有个内部工具要从零写起,REST API 要维护两份类型定义,GraphQL 的 schema 层又重得让人提不起劲,最后我选了更务实的路:用 T3 Stack 全家桶(Next.j…

2026/10/27 7:13:32

基于RBF神经网络与自适应滑模的船舶轨迹跟踪控制

1. 项目背景与核心挑战欠驱动船舶控制一直是航海自动化领域的难点问题。这类船舶通常只有两个独立的控制输入(如螺旋桨推力和舵角),却需要同时控制三个自由度(进退、横移和转向)的运动状态。这种欠驱动特性使得传统控制…

2026/10/27 7:13:32

YOLOv8在农业病害检测中的优化与应用实践

1. 项目概述:当计算机视觉遇上农业痛点去年在云南某茶叶种植基地调研时,看到茶农们每天要花3-4小时人工检查数千株茶树的叶片状况。这种传统病害检测方式不仅效率低下,更令人揪心的是——当肉眼能明显观察到病斑时,往往已经错过了…

2026/10/27 7:13:31

图像处理实验三合一:去模糊、去噪与边缘提取的底层逻辑与实操

图像处理这门课,实验环节往往比理论课更让人头疼。标题里提到的三个任务——去模糊、去噪、提取边缘特征,看起来是三个独立的小实验,实际上它们共享同一套底层逻辑:都是在像素层面跟噪声和退化做斗争。我带过几届学生做这类实验&a…

2026/10/27 7:08:31

ArcGIS六边形渔网生成工具箱:空间均匀采样与蜂窝图实战

简介:本资源是一款面向GIS从业者与空间分析学习者的ArcGIS工具箱,用于在ArcGIS中快速生成正六边形渔网(蜂窝图),解决传统渔网工具难以直接产出规则六边形格网的问题,适用于城市规划、生态分区、格网统计等场…

2026/10/26 0:20:20

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/26 1:53:47

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/27 0:59:21

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/27 0:02:28

WorkBuddy_新建任务与工作模式19_“模式选错”的典型代价

“模式选错”的典型代价 摘要 在软件工程中,设计模式、架构模式、并发模式乃至团队协作模式的选择,往往在项目早期就决定了后续的开发效率和维护成本。本文通过多个真实场景,剖析“模式选错”带来的典型代价——包括返工成本、技术债务累积、…

2026/10/27 0:02:28

WorkBuddy_新建任务与工作模式20_新手推荐路径

新手推荐路径 摘要 在 AI 辅助开发工具快速普及的今天,新手面对最多的困惑往往不是"工具够不够强",而是"我该从哪一步开始用"。本文提出一条经过实践验证的三阶段学习路径:先从 Ask(问答式交互)起…

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

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

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