给定一组数字确定每个大小大于或等于2的子集的最大和最小元素的按位OR并添加它们

时间:2018-06-02 06:51:24

标签: bit-manipulation

我一直在尝试使用位操作来解决这个问题,因为对于每个数组元素,它将显示多少时间作为子集的最大值,并且类似地显示为子集的最小值的次数。我猜是(2 ^(n-1))。现在因为我们需要计算机按位OR,我们可以计算每个位(没有最大值)+(没有最小值的次数) - (两者都不常见)。

但在那之后,我迷失了,并没有得到解决它的任何线索。如果有人能够深入了解这个问题,我会很高兴。这是过去比赛的问题。提前谢谢。

测试用例供参考

示例输入

3

2 5 5

示例输出

26

解释

数组包含3个整数。因此,尺寸> = 2的所有子集是: - {{2,5},{2,5},{5,5},
{2,5,5}},因此这些子集的最大和最小元素的按位OR是 分别为{7,7,5,7},因此总和为7 + 7 + 5 + 7 = 26。

0 个答案:

没有答案
相关问题