Tìm tổng nhỏ nhất
Bài học 17 trên 17 trong khóa học Thao tác bit của Coddy.
Thử thách
Trung bìnhBạn được cho một mảng <strong>a</strong> có kích thước <strong>n</strong>.
Bạn có thể thực hiện thao tác sau trên mảng:
- Chọn hai số nguyên khác nhau
<strong>i</strong>,<strong>j</strong>(1 ≤ i < j ≤ n), thay<strong>a<sub>i</sub></strong>bằng<strong>x</strong>và<strong>a<sub>j</sub></strong>bằng<strong>y</strong>. Để không làm hỏng mảng, điều kiện<strong>a<sub>i </sub>| a<sub>j </sub>= x | y</strong>phải được giữ nguyên, trong đó<strong>|</strong>biểu thị phép OR theo bit. Lưu ý rằng<strong>x</strong>và<strong>y</strong>là các số nguyên không âm.
Hãy in ra tổng nhỏ nhất có thể đạt được của mảng sau khi thực hiện thao tác trên tùy ý số lần.
Tự làm thử
#include <vector>
using namespace std;
int FindMinSum(vector<int> a) {
// Viết code ở đây
}Tất cả bài học trong Thao tác bit
Tự luyện tập: Trình biên dịch C++ online