恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

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

  • 首页
  • 资讯中心
  • /
  • 《数据结构实验指导-C++语言版》 爆气球

相关资讯

PyBaMM 参数排查避坑指南:一条实战链路,彻底告别参数集识别错误 2026/8/20 11:53:07
装完系统还在为激活发愁?这份Windows和Office智能激活脚本实战手册帮你一劳永逸 2026/8/20 11:53:07
FF 91 实车深度体验:从设计、智能到行业思考的全面解析 2026/8/20 11:53:07

最新资讯

AI原生工作流:从大白话到技术视频的自动化生成实践
std1.97.1——fmt模块总览
为什么我最终选择 Ubuntu,而不是 Fedora 或 Arch Linux
CANN Bench:三维基准测试如何量化AI内核生成与硬件算法极限
C语言——⾃定义类型:结构体
新电脑到手72小时,我用Win11Debloat系统清理工具做了一次彻底断舍离

今日推荐

类模板模板参数的全部使用场景
多态的理解,虚函数表的理解
C++ 类编译器自动生成的默认函数 | 拷贝构造函数 vs 拷贝赋值运算符(赋值构造)

本周热门

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码
【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码
隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

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

发布时间:2026/8/20 11:53:07
《数据结构实验指导-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输出跳跃位置和最大覆盖数

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号