Cho mảng số nguyên. Đếm số cặp (i,j) (i < j) sao cho arr[i] XOR arr[j] là số chẵn.
XOR chẵn khi cả hai cùng chẵn hoặc cùng lẻ. Tổng cặp = n*(n-1)/2. Cặp lẻ = even*odd. Cặp chẵn = Tổng - Cặp lẻ.
Ví dụ: {2,6,1,8} → 3.
Ví dụ
#include <iostream>
using namespace std;
int XOR_Even(int arr[], int size) {
int odd = 0;
for (int i = 0; i < size; i++)
if (arr[i] % 2 != 0) odd++;
int total = size * (size - 1) / 2;
int odd_pairs = odd * (size - odd);
return total - odd_pairs;
}
int main() {
int arr[] = {2,6,1,8};
int size = sizeof(arr) / sizeof(arr[0]);
cout << "Count: " << XOR_Even(arr, size);
return 0;
}
Đầu ra
Count of pairs with Bitwise XOR as EVEN number are: 3