小辰的智慧树【牛客tracker 每日一题】

发布时间:2026/9/14 21:47:02

小辰的智慧树【牛客tracker  每日一题】 小辰的智慧树时间限制1秒 空间限制256M网页链接牛客tracker牛客tracker 每日一题完成每日打卡即可获得牛币。获得相应数量的牛币能在【牛币兑换中心】换取相应奖品助力每日有题做丰盈牛币日益多题目描述有n nn棵智慧树第i ii棵智慧树的初始高度为h i h_ihi​当前高度为h i ′ h_i^′hi′​。小辰每次可以砍去某一棵智慧树的长度为x ( 0 ≤ x ) x (0≤x)x(0≤x)的树干小辰获得x × ( h i ′ h i ′ − x ) x×(h_i^′h_i^′−x)x×(hi′​hi′​−x)的智慧而后智慧树的当前高度h i ′ ← h i ′ − x h_i^′←h_i^′−xhi′​←hi′​−x。现在陶陶不想让小辰太聪明于是陶陶便限制第i ii棵智慧树高度不能低于c i c_ici​。同时由于小辰的屋子空间有限不能装下长度之和超过m mm的树干。求小辰最多能获得多少智慧。输入描述第一行两个整数n ( 1 ≤ n ≤ 10 6 ) , m ( 1 ≤ m ≤ 10 12 ) n (1≤n≤10^6),m (1≤m≤10^{12})n(1≤n≤106),m(1≤m≤1012)表示智慧树的数量和小辰屋子的空间大小。接下来n nn行第i ii行两个整数h i , c i ( 0 ≤ c i ≤ h i ≤ 10 6 ) h_i,c_i (0≤c_i≤h_i≤10^6)hi​,ci​(0≤ci​≤hi​≤106)表示第i ii棵智慧树的初始高度和第i ii棵智慧树的最低高度。输出描述一行一个整数表示小辰能获得的最大智慧。示例1输入3 6 10 5 9 2 8 1输出98解题思路本题是差分数组 贪心的经典模型将砍树过程拆分成按高度排序的独立单位操作每次砍伐高度越高收益越大因此从高到低贪心选取即可。1. 问题转化砍伐收益重写对于一棵高度为h ′ hh′的树砍去长度x xx获得智慧x ( 2 h ′ − x ) x(2h - x)x(2h′−x)。若将砍伐视为多次砍下长度为1 11的单位第一次砍时高度为h ′ hh′收益2 h ′ − 1 2h - 12h′−1第二次砍时高度变为h ′ − 1 h-1h′−1收益2 ( h ′ − 1 ) − 1 2 h ′ − 3 2(h-1) - 1 2h - 32(h′−1)−12h′−3第k kk次砍时收益为2 ( h ′ − k 1 ) − 1 2(h - k 1) - 12(h′−k1)−1。结论对于任意一棵树它在高度为i ii时被砍掉1 11单位长度能提供固定收益2 i − 1 2i - 12i−1且能砍的高度范围是[ c i 1 , h i ] [c_i1,\ h_i][ci​1,hi​]内的每一个整数高度。全局视角所有树的全部可砍单位分布在不同的高度上每个高度i ii可能有若干棵树可以提供“从i ii砍到i − 1 i-1i−1”这一刀。总目标是在总砍伐长度≤ m \le m≤m的限制下选择收益总和最大的一批单位。由于收益2 i − 1 2i-12i−1随i ii严格递增贪心策略就是优先砍高度最高的单位。2. 算法实现差分统计用一个数组d记录高度i ii处能砍的树的数量。对于第i ii棵树( h , c ) (h, c)(h,c)它能砍的高度区间是[ c 1 , h ] [c1, h][c1,h]我们在差分数组上d[h]d[c]--。之后从高到低遍历高度d[i] d[i1]此时d[i]即表示在高度i ii处可砍的单位总数。贪心选取从最高高度10 6 10^6106向下遍历若d[i] m则全部砍掉智慧累加(2*i - 1) * d[i]剩余长度m - d[i]否则只能砍m个单位智慧累加(2*i - 1) * mm归零并结束。输出最终的累加和即为最大智慧。3. 复杂度分析时间复杂度O ( n max ⁡ h ) O(n \max h)O(nmaxh)n ≤ 10 6 n \le 10^6n≤106max ⁡ h ≤ 10 6 \max h \le 10^6maxh≤106完全可行。空间复杂度O ( max ⁡ h ) O(\max h)O(maxh)的差分数组。总结将每次砍伐的收益按照砍伐时的高度拆分成独立单位利用差分数组快速统计每个高度上的可砍次数再按高度从高到低贪心选取保证了在长度限制下的总收益最大。整个过程避免了复杂的动态规划简洁高效。代码简要说明读入与差分d数组初始全0 00。对每棵树(h, c)执行d[h]与d[c]--。后缀和还原从10 6 10^6106向下遍历d[i] d[i1]得到高度i ii处的单位数。贪心累加同样从高向低遍历对每个高度i ii若d[i] m则全取否则取剩余m个。累加智慧并更新m。输出结果cout sum。代码内容#includebits/stdc.husingnamespacestd;#defineendl\ntypedeflonglongll;typedefunsignedlonglongull;typedefvectorvectorllvvt;typedefpairll,llpll;constll N1e310;constll INF1e18;constll M1e610;constll mod1e97;intmain(){ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);ll n;ll m;cinnm;vectorlld(1000005);for(ll i1;in;i){ll h,c;cinhc;d[h];d[c]--;}ll sum0;for(ll i1000000;i0;i--){d[i]d[i1];if(d[i]m){sum(2*i-1)*d[i];m-d[i];}else{sum(2*i-1)*m;m0;break;}}coutsum\n;return0;}
延伸阅读

更多相关文章

2026/9/15 1:17:55

Unity资源逆向工程实战:从AssetStudio到UABEA的完整解包方案

1. 项目概述:为什么我们需要Unity资源逆向工程?在游戏开发、独立研究、甚至是内容创作领域,你手头可能有一个非常棒的Unity游戏,想学习它的美术风格、分析它的UI设计,或者提取一段精彩的音效用于自己的非商业项目。但你…

2026/9/14 22:10:47

护眼钢化膜有用吗?2026年从光学原理到真实体验,一次讲透

刚换iPhone 17的朋友,十有八九在贴膜时都会闪过一个念头:护眼钢化膜有用吗?商家把蓝光膜、绿光膜、磨砂膜都叫护眼膜,价格从十几块到几百块,是真有技术含量还是纯纯智商税?这篇文章不站队、不尬吹&#xff…

2026/9/13 21:38:00

QueryInst实例分割在花椒杂质检测中的应用实践

1. 项目背景与核心价值 花椒作为我国重要的调味品和经济作物,其加工过程中的杂质问题一直困扰着生产企业。在花椒从种植到包装的全流程中,混入的树枝、石块、金属碎片等异物会直接影响产品品质和食品安全。传统人工分拣方式效率低下且容易漏检&#xff0…

2026/9/15 1:16:20

YOLOv7姿态估计实战:从推理训练到ONNX部署与评估

简介:基于YOLOv7的人体姿态估计示例工程,面向正在学习目标检测与关键点识别的Python开发者,涵盖预训练模型加载与关键点推理示例。压缩包内含可运行的pose-estimate.py脚本及配套模块,其中utils目录封装了数据增强、损失计算、锚框…

2026/9/15 1:16:20

PyTorch高分遥感语义分割实战:从数据到推理全流程

简介:基于PyTorch的高分遥感语义分割(地物分类)项目源码,面向计算机、人工智能、自动化及相关专业学生、教师或从业者,可作为课程设计、大作业与毕业设计的完整参考。资源源自个人毕设,答辩评审98分&#x…

2026/9/15 1:16:20

Kafka底层原理与生产级运维实战指南

1. 为什么“Kafka速记”不是一张便签,而是一套肌肉记忆系统你搜“Kafka速记”,点开的可能是一张密密麻麻的命令列表,或是几行配置截图——但真正用过Kafka半年以上的运维、开发或数据工程师都知道:Kafka根本没法靠“背”来掌握。它…

2026/9/15 1:16:20

Python自动化脚本开发实战指南

1. 为什么我们需要自动化日常任务每天早上打开电脑,第一件事就是重复那些机械性的操作:检查邮件、整理文件、更新数据表、生成报表...这些固定流程占据了大量工作时间。作为一名数据分析师,我曾经每天要花2小时处理这些事务性工作&#xff0c…

2026/9/15 1:16:20

轻量化卡密分发系统:PHP文件存储与IP限流实战

简介:小号分发与卡密分发系统网站源码,定位为轻量化账号/卡密发放工具,主要面向个人站长、工作室或中小企业运营者,用于管理小号库存并自动发放账号或卡密。系统内置每个IP每日最多领取三次的限制规则,可有效防止资源被…

2026/9/15 1:11:20

CCS集成母排:新能源电池连接系统,为何与半导体芯片无关?

我前两天刷到一条互动平台的问答,有位投资者问爱克股份,公司布局的CCS集成母排业务,是否已经应用在半导体、芯片相关的场景。爱克股份的回复也很干脆:公司CCS集成母排产品暂未应用于半导体、芯片相关场景。这个问答放在平时可能没…

2026/9/14 2:17:50

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/15 0:01:16

AI英语单词APP开发:自适应学习算法与移动端优化实践

1. 项目概述 作为一名在移动应用开发领域摸爬滚打多年的老手,我最近完成了一个AI英语单词APP的开发项目。这个项目将传统单词记忆方法与现代AI技术相结合,打造了一款能够智能适应不同用户学习习惯的英语学习工具。 市面上大多数单词APP都存在一个通病&a…

2026/9/15 0:01:16

Flutter与OpenHarmony结合开发手语学习APP实战

1. 项目背景与核心价值作为一名同时接触过Flutter和OpenHarmony的开发者,最近我完成了一个基于Flutter for OpenHarmony的手语学习APP实战项目。这个项目最大的特点在于实现了跨平台框架与国产操作系统深度结合的创新实践——用Flutter开发的应用能完美运行在OpenHa…

2026/9/15 0:01:16

六个月成为机器人工程师:从ROS2到SLAM的实战路径

1. 六个月的紧迫感从哪来:先搞清楚你要成为哪种机器人工程师说实话,六个月的期限并不是一个宽松的时间线。市面上任何一本正经的机器人学教材都超过五百页,ROS2的官方文档可以翻到你怀疑人生,再加上ABB、KUKA这些工业机器人厂家动…

2026/9/14 11:59:31

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/14 13:53:59

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/14 11:22:57

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

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

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

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