Menu
CoddyTech

找到最小和

Coddy 位运算 课程的第 17 课,共 17 课。

challenge icon

挑战

中等

给定一个大小为 <strong>n</strong> 的数组 <strong>a</strong>。

你可以对这个数组执行以下操作:

  • 选择两个不同的整数 <strong>i</strong> , <strong>j</strong> (1 ≤ i < j ≤ n),将 <strong>a<sub>i</sub></strong> 替换为 <strong>x</strong>,并将 <strong>a<sub>j</sub></strong> 替换为 <strong>y</strong>。为了不破坏数组,必须满足条件 <strong>a<sub>i </sub>| a<sub>j </sub>= x | y</strong>,其中 <strong>|</strong> 表示按位或运算。注意,<strong>x</strong> 和 <strong>y</strong> 都是非负整数。

请输出执行任意次数上述操作后,数组能够得到的最小和。

亲手试试

#include <vector>
using namespace std;

int FindMinSum(vector<int> a) {
    // 在这里编写代码
}

位运算中的所有课

自己练习: C++ 在线编译器