华为OD机试 - 分积木(JS)

373 篇文章 48 订阅 ¥49.90 ¥99.00
本文介绍了华为OD机试中的一道题目,要求根据Koko的特殊加法规则(按位异或)来公平分配积木。通过分析Koko的逻辑,发现只有当所有积木权重按位异或结果为0时,才能满足条件。如果可以平分,Solo应选择最轻的积木给Koko以获取最大重量。提供了JavaScript算法源码来解决这个问题。
摘要由CSDN通过智能技术生成

题目描述

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

 11001
+01011
--------
 10010

Solo想要尽可能使自己得到的积木总重量最大,且不让koko哭。

输入描述

第一行是一个整数N(2≤N≤100),表示有多少块积木;

第二行为空格分开的N个整数Ci(1≤Ci≤106),表示第i块积木的重量。

输出描述

如果能让koko不哭,输出Solo所能获得积木的最大总重量;否则输出“NO”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

AsiaFT.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值