e359 - Xor 運算(簡單! ~ :))
題目描述
題目要求計算一個集合的所有非空子集的 XOR 運算結果的 XOR 運算,並輸出結果模 1000000007 的值。
解題思路
當集合大小 N 大於 1 時,所有非空子集的 XOR 運算結果的 XOR 運算結果為 0。這是因為對於集合中的每個元素,它會出現在一半的子集中,因此 XOR 運算會抵消。當 N 等於 1 時,結果就是集合中唯一的元素的值。程式碼直接根據 N 的值進行判斷,如果 N 等於 1,則輸出集合中的元素,否則輸出 0。
複雜度分析
- 時間複雜度: O(1)
- 空間複雜度: O(1)
程式碼
#include <iostream>
using namespace std;
int main() {
cin.sync_with_stdio(false), cin.tie(NULL);
int n, a;
while (cin >> n >> ws) {
if (n == 1){
cin >> a;
cout << a << "\n";
}
else{
cin.ignore(200000,'\n');
cout << "0\n";
}
}
}