Arrays 数组子集的按位与

Arrays 数组子集的按位与,arrays,set,bit-manipulation,bitwise-operators,Arrays,Set,Bit Manipulation,Bitwise Operators,有人能给我一个如何解决这个问题的提示吗 给定一个数组A。数组A是否有一个子集,如果我们这样做,那么该子集中的所有元素的输出都应该是2的幂 我曾想过生成一个幂集并求解,但它的复杂性很差(2^n) 提前感谢。你可以从另一个角度来看待它:选择二的幂。我们能生成它吗 这个问题很容易回答。从设置了2的幂对应的位的集合中获取所有项。计算所有这些的和。通过构造,结果必须具有我们所寻找的位集,但它可能具有或不具有任何其他位集。如果它也有其他位,那么选择一些其他的(较小的-你不能选择任何额外的项,因为它们没有目标

有人能给我一个如何解决这个问题的提示吗

给定一个数组A。数组A是否有一个子集,如果我们这样做,那么该子集中的所有元素的输出都应该是2的幂

我曾想过生成一个幂集并求解,但它的复杂性很差(2^n)


提前感谢。

你可以从另一个角度来看待它:选择二的幂。我们能生成它吗

这个问题很容易回答。从设置了2的幂对应的位的集合中获取所有项。计算所有这些的和。通过构造,结果必须具有我们所寻找的位集,但它可能具有或不具有任何其他位集。如果它也有其他位,那么选择一些其他的(较小的-你不能选择任何额外的项,因为它们没有目标位集)子集也不会工作,它只能设置更多的错误位,因为它取消设置位的可能性较小

只要对所有可能的二次幂都这样做,就等于集合中最大整数的位数