华为OD机试真题2025双机位A卷 - 【分弹珠游戏】(Python & C++ & JAVA & JS & GO)

分弹珠游戏

2025华为OD机试双机位A卷 - 华为OD上机考试双机位A卷 100分题型

华为OD机试双机位A卷真题目录点击查看: 华为OD机试双机位A卷真题题库目录|机考题库 + 算法考点详解

题目描述

Aliice最近迷上分弹珠游戏,每次从箱子里拿出随机数量的弹珠,第一次将弹珠分为尽可能相等的两份,(偶数平分,奇数则其中一份比另外一份多一颗),第二次将这两份弹珠各自再尽可能分为相等的两份,直到每份弹珠不超过2颗。如果第一次取出弹珠就已经少于三颗,则不用分,你能在Alice取出弹珠后就知道它要分多少次,最终会分成多少份吗?

输入描述

一个整数N,表示Alice拿到的弹珠数。范围:0<N<131072

输出描述

输出分拆需要的次数,分拆完成后的分数,使用空格分割。

用例1

输入

1

输出

0 1
</
汽车与停车位关键点检测数据集 一、基础信息 &bull; 数据集名称:汽车与停车位关键点检测数据集 &bull; 图片数量: 训练集:308张图片 验证集:47张图片 测集:22张图片 总计:377张实际场景图片 &bull; 训练集:308张图片 &bull; 验证集:47张图片 &bull; 测集:22张图片 &bull; 总计:377张实际场景图片 &bull; 类类别: car(汽车):常见交通工具,用于检测车辆位置和形状。 parking-space(停车位):标识可用或占用停车区域,支持空间定位。 &bull; car(汽车):常见交通工具,用于检测车辆位置和形状。 &bull; parking-space(停车位):标识可用或占用停车区域,支持空间定位。 &bull; 标注格式:YOLO格式,包含关键点坐标标签,适用于关键点检测任务。 &bull; 数据格式:图片文件来源于真实环境,覆盖多种停车场景。 二、适用场景 &bull; 智能停车管理系统开发:用于自动检测停车位占用状态和汽车位置,提升停车场管理效率。 &bull; 自动驾驶与辅助驾驶系统:帮助车辆识别可用停车位并精准定位,支持自动泊车功能。 &bull; 城市交通监控与规划:析停车位使用模式和汽车布,优化城市交通资源配。 &bull; 计算视觉研究:支持关键点检测、目标定位等任务,推动自动驾驶和智能交通算法创新。 三、数据集优势 &bull; 关键点标注精准:每个标注包含多个关键点坐标,精确描述汽车和停车位的形状与位置,确保模型学习细粒度特征。 &bull; 场景多样性:数据涵盖不同环境和角度,增强模型在复杂场景下的泛化能力和鲁棒性。 &bull; 格式兼容性强:YOLO标注格式易于集成到主流深度学习框架,方便快速部署和实验。 &bull; 实用价值突出:直接应用于智能交通和自动驾驶领域,为停车管理和车辆导航提供可靠数据支撑。
### 华为OD糖果问题的Python解题思路 #### 问题描述 小明从糖果盒中随意抓取一定数量的糖果,每次可以执行三种操作之一:取出一半糖果并舍去余数;如果当前糖果数目为奇数,则可以从盒子中再拿一个糖果或将手里的一个糖果放回去。目标是最少经过几次这样的操作能够使手中的糖果变为一颗。 为了达到这个目的,采用贪心策略来解决问题[^3]。具体来说,在每一步都尽可能快速地减少糖果的数量直到只剩下一颗为止。当遇到奇数个糖果时,优先考虑加一而不是减一,因为这样可以在下一轮更有效地通过除以2的方式大量削减糖果总数。 #### 贪婪算法析 对于任意正整数n表示初始糖果数: - 如果 n 是偶数,则直接将其除以2; - 若 n 为奇数,则判断 (n+1)/2 和 (n&minus;1)/2 的大小关系,选择较小的那个作为下一步的结果,这是因为我们希望更快接近1。 这种做法基于这样一个事实&mdash;&mdash;当我们面对两个连续的奇数值时,较大的那个总是可以通过增加1变成一个小得多的新值(即其半数),而较小的一个则需要两次操作才能完成同样的效果(先减后除)[^4]。 #### Python代码实现 下面给出了解决上述问题的具体Python程序: ```python def min_steps_to_one(n): steps = 0 while n != 1: if n % 2 == 0: n //= 2 elif ((n + 1) // 2) &lt; ((n - 1) // 2): n += 1 else: n -= 1 steps += 1 return steps if __name__ == &quot;__main__&quot;: candy_count = int(input().strip()) print(min_steps_to_one(candy_count)) ``` 此函数接收一个参数`n`代表起始的糖果数量,并返回将这些糖果减少到只有一个所需的最小步数。主程序部读入用户输入的数据并调用该方法打印最终结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无限码力

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值