【发布时间】:2018-05-14 04:34:04
【问题描述】:
给定一个集合 S,对于它的每个非空子集,找到最小和最大元素并取它们的逻辑 OR。在所有此类子集中找到这些 OR 的总和。
例如:S = {1, 2, 3},然后是子集
{1} 最小=1 最大=1 OR=1
{2} 最小=2 最大=2 OR=2
{3} 最小=3 最大=3 OR=3
{1, 2} 最小=1 最大=2 OR=3
{2, 3} 最小=2 最大=3 OR=3
{1, 3} 最小=1 最大=3 OR=3
{1, 2, 3} 最小=1 最大=3 OR=3
答案是 18。
我已阅读 How to find Sum of differences of maximum and minimum of all possible subset of an array,但无法在此处使用该逻辑。
【问题讨论】:
-
你需要得到所有可能的组合并做OR?你不先写蛮力
-
算法应该在代码中实现。由于不同的语言提供不同的工具,因此了解您所考虑的语言会很有帮助。
-
从集合中选择任意两个元素,取它们的逻辑或。计算这两者之间的元素。确定可以从这 N+2 个元素中组成多少组。乘。冲洗并重复。
标签: algorithm set subset logical-operators