《数据结构实验指导-C++语言版》 爆气球

发布时间:2026/10/8 7:48:17

《数据结构实验指导-C++语言版》 爆气球 题目描述爆气球对孩子们来说是很好玩的游戏。假设有nnn只气球被布置在一条直线上游戏的目标很简单就是爆掉尽可能多的气球。但是这里我们加一条特殊的规则——你只能跳一次。我们假设聪明的娃穿了件浑身带刺的衣服跳到某个位置后躺平如下图所示这样气球只要碰到娃身体的任何部分都会立刻爆炸。那么你的任务就是告诉娃应该跳到哪里才能一次爆掉最多的气球。输入格式输入共两行第一行两个正整数nnnn≤105n \le 10^5n≤105和hhhh≤103h \le 10^3h≤103分别表示气球数量和孩子伸直双臂能达到的高度。第二行nnn个整数每个对应一只气球在直线轴上的坐标。题目保证坐标按递增顺序给出所有坐标值均在[−106,106][-10^6, 10^6][−106,106]区间内。输出格式在一行中输出孩子跳跃的位置坐标使得孩子跳到这个位置然后躺平能够爆掉身下最多的气球随后输出能爆掉的气球的最大数量。如果这个坐标不唯一输出最小的那个值。一行中的数字间应有 1 个空格行首尾不得有多余空格。**注意**跳到从 120 到140或 240 到 260 之间的任何位置都可以爆掉 5 只气球所以 120 作为最小的坐标被输出。题目引用自攀拓考试真题2022年秋季。输入样例11 120 -120 -40 0 80 122 140 160 220 240 260 300输出样例120 5解题思路孩子躺平后覆盖一个长度为hhh的闭区间[y,yh][y, yh][y,yh]落在区间内的气球都会被爆掉。问题转化为在所有长度为hhh的区间中找出能覆盖最多气球的那个并输出其左端点yyy的最小值。由于坐标已按递增顺序给出使用双指针滑动窗口在线性时间内求解固定窗口左边界为第iii只气球右指针j不断右移直到x[j]x[i]hx[j] x[i] hx[j]x[i]h窗口内气球数为j−ij - ij−i。记录最大数量的同时保存窗口最右气球的坐标bestRight跳跃位置为bestRight - h这是能覆盖该窗口所有气球的最小位置只有cnt bestCnt时才更新保证坐标不唯一时输出最小值。时间复杂度O(n)O(n)O(n)双指针各自至多移动nnn次。空间复杂度O(n)O(n)O(n)存储坐标数组。代码流程说明读入气球数量nnn和高度hhh读入所有气球坐标。对坐标排序题目保证递增排序用于保险。初始化最优数量bestCnt 0、最优右端点bestRight x[0]、右指针j 0。以每个位置i作为窗口左边界保证j i右移j直到x[j] x[i] h窗口内气球数cnt j - i若cnt bestCnt更新bestCnt和bestRight x[j-1]。输出bestRight - h跳跃位置和bestCnt。代码实现#includeiostream#includealgorithmusingnamespacestd;constintMAXN100005;intx[MAXN];intmain(){intn,h;cinnh;for(inti0;in;i)cinx[i];// 孩子躺在长度 h 的闭区间 [y, yh] 内覆盖区间内的所有气球sort(x,xn);intbestCnt0,bestRightx[0];intj0;for(inti0;in;i){if(ji)ji;while(jnx[j]x[i]h)j;intcntj-i;if(cntbestCnt){bestCntcnt;bestRightx[j-1];}}// 输出能覆盖最多气球的最小跳跃位置最优区间右端点 - 长度 hcoutbestRight-h bestCntendl;return0;}代码流程图是是否是否是否否开始读入 n, h 和气球坐标对坐标排序初始化 bestCnt, bestRight, 右指针 ji 从 0 到 n-1j 是否小于 ij 等于 i坐标 j 是否在窗口内j 加 1窗口内气球数 cnt 等于 j 减 icnt 是否大于 bestCnt更新 bestCnt 和 bestRighti 加 1输出 bestRight 减 h 和 bestCnt结束解题流程图是否是否找到爆掉最多气球的跳跃位置读入气球坐标和高度 h排序气球坐标用滑动窗口枚举长度为 h 的区间统计窗口内覆盖的气球数覆盖数是否大于当前最优更新最优覆盖数和区间是否还有窗口跳跃位置取最优区间右端点减 h输出跳跃位置和最大覆盖数
延伸阅读

更多相关文章

2026/10/7 5:27:38

FF 91 实车深度体验:从设计、智能到行业思考的全面解析

1. 一次意料之外的“未来”邂逅 那天下午,我正开车行驶在洛杉矶一条并不算特别繁忙的街道上,脑子里盘算着下一个项目的技术选型。作为一个在汽车科技和智能硬件领域混迹了十多年的从业者,我对路上的各种“新面孔”总是格外敏感。就在一个红绿…

2026/10/8 7:48:14

Agent Skills工程化:可验证、可组合、可观测的最小执行单元

1. 这不是“技能列表”,而是一套可执行、可组合、可验证的工程化能力单元你搜“skills”时看到的满屏“Claude skills”“agent skills”“superpower skills”,绝大多数人第一反应是:这不就是个功能菜单?点一下就能用的插件&…

2026/10/8 7:48:14

openrig:本地大模型推理编排框架的显存优化与多模型调度实战

1. openrig的真实定位:一个能“编排”大模型的本地推理框架上个月做内部技术分享,我需要同时演示两个本地模型:一个专攻代码生成,一个做通用对话。放在以前,我用的方案是这样的——先杀掉当前进程,卸载模型…

2026/10/8 7:48:14

context-mode实战:多项目并行开发的上下文管理方案

1. context-mode到底解决什么问题:从一个让我崩溃的下午说起我先说个真实经历。两年前我手里同时压着三个项目:一个订单服务要重构,一个数据报表要接新BI,还有一个老项目要修线上紧急bug。每天上午的第一个动作不是写代码&#xf…

2026/10/8 7:48:14

OpenRig:本地AI工作流调度器,多模型服务一键切换

1. OpenRig 是什么:一个被误读但极具潜力的本地 AI 工作流调度器OpenRig 这个名字最近在开发者社区里频繁出现,但它既不是某个新发布的闭源商业产品,也不是某家大厂推出的 AI 框架——它本质上是一个轻量级、可组合、面向本地 AI 开发者的工作…

2026/10/8 7:48:14

AI技能插件实战:打造Ponytail马尾辫造型决策工具

提到 ponytail,很多人第一反应就是“马尾辫嘛,谁不会扎”。但真正上手之后你会发现,远不是那回事——同一个马尾,扎高一点、低一点、松一点、紧一点,视觉效果天差地别。我前后折腾了大半年,试过无数教程&am…

2026/10/8 7:43:13

CTF杂项解题exe工具链全攻略:从文件识别到内存取证

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

2026/10/5 6:32:56

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

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

2026/10/7 8:18:33

多智能体集群实战: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/8 0:02:17

自然数立方等于连续奇数之和:从证明到编程验证

十几年来我一直游走在数学科普和编程教学这两块内容之间,对“看起来像魔法、拆开全是数学”的结论总是格外敏感。最近翻资料时又撞见一句话:任何一个自然数 m 的立方,都可以写成 m 个连续奇数之和。2 的立方等于 3 加 5,3 的立方等…

2026/10/8 0:02:17

C#上位机SSH连接实战:用SSH.NET补齐超时、批量与密钥认证

简介:这是一份基于 C# 开发的 SSH 连接功能半成品工程,原本作为另一个主项目的子功能模块,现独立打包分享。工程采用 WinForms 界面,包含源码、解决方案、安装部署工程、NuGet 依赖包及说明文档,适合正在做远程连接、网…

2026/10/8 0:02:17

Java SpringBoot一体化智能售后系统设计与实现全解析

毕业设计年年做,Java Web 方向的题目翻来覆去就那么几个,但“一体化智能售后系统”这个题,每次看到我都觉得值得认真聊一聊。它不是一个简单 curd 堆出来的管理系统,而是把客户、工单、派单、处理、回访、统计整条链路串起来的一套…

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

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

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