【新2023】华为OD机试 - 分积木(Python)

本文介绍了华为OD机试中的一道分积木题目,要求将积木平均分成两组,使两组的重量在二进制下相加时不进位。提供了解题思路和Python代码实现,强调了理解题意和算法的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

华为 OD 清单查看地址:blog.youkuaiyun.com/hihell/category_12199275.html

OD统一考试 B卷 分积木

题目

solokoko是两兄弟
妈妈给了他们一大堆积木
每块积木上都有自己的重量
现在他们想要将这些积木分为两堆
哥哥solo负责分配
弟弟koko要求两个人获得的积木总重量相等
(根据koko的逻辑),个数可以不同,不然就会哭
koko只会先将两个数转成二进制在进行加法
而且总会忘记进位(每个进位都会忘记)
如当25(11101)+11(1011)时,
koko得到的计算结果是18(10010):11001+01011=10010
solo想要尽可能让自己得到的积木总重量最大,且不让koko

输入

第一行是一个整数N (2 <= N <= 100)
表示有多少块积木
第二行为空格分开的N个整数Ci (1 <= Ci <= 10^6)
表示第 i 块积木的重量

输出

koko不哭,输入solo所能获得积木的最大总重量
否则输出 "No"

示例一

输入

3
3 5 6

输出

11

说明

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

梦想橡皮擦

如有帮助,来瓶可乐

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

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

打赏作者

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

抵扣说明:

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

余额充值