Cho mảng và số k. Tìm số x sao cho XOR của tất cả phần tử mảng với x bằng k. Ví dụ:
Input: arr={1,2,3,4,5}, k=10 → Output: 11
Giải thích: 1^2^3^4^5^11 = 10
Input: arr={12,23,34,56,78}, k=6 → Output: 73
Phương pháp giải
Tính XOR tổng của mảng: total = arr[0]^arr[1]^...^arr[n-1]. Cần total^x = k → x = total^k (vì A^B=C ↔ A^C=B).
Ví dụ minh họa
#include <bits/stdc++.h>
using namespace std;
int main() {
int arr[] = {1,2,3,4,5};
int n = sizeof(arr)/sizeof(int);
int k = 10;
int answer = 0;
for (int i=0; i
Kết quả
11
Giải thích
Tính XOR tổng mảng, sau đó XOR với k để tìm x. Dựa trên tính chất: A^B=C ⇔ A^C=B.
Kết luận
Đã giải bài toán tìm x sao cho XOR mảng với x = k bằng tính chất XOR. Code C++ đơn giản O(n). Hy vọng hữu ích.