NC232720. 圣
描述
伪代码:init() 读入,print() 输出 T ← init() for k ← 1 .. T n ← init() for i ← 1 .. n a[i] ← init() ans ← 0 for i ← 1 .. n tp ← 0 for j ← 1 .. n tp ← tp or (a[i] and a[j]) ans ← ans xor tp print(ans) C/C++ 语言版: for (k = 1; k <= T; ++k) { n = init(); for (i = 1; i <= n; ++i) a[i] = init(); ans = 0; for (i = 1; i <= n; ++i) { tp = 0; for (j = 1; j <= n; ++j) tp |= (a[i] & a[j]); ans ^= tp; } }
输入描述
全文第一行输入一个正整数 ,表示数据组数。
对每组数据,第一行输入一个正整数 。
第二行输入 个正整数,表示 。
输出描述
对每组数据,输出一行一个整数表示答案。
示例1
输入:
1 2 1 1
输出:
0
C++ 解法, 执行用时: 538ms, 内存消耗: 1608K, 提交时间: 2022-07-18 06:55:29
#include<iostream> using namespace std; int main() { int t,n; cin>>t; while(t--) { int p,sum=0; cin>>n; while(n--) { cin>>p; sum=sum^p; } cout<<sum<<endl; } }
pypy3 解法, 执行用时: 1244ms, 内存消耗: 32960K, 提交时间: 2023-07-10 20:57:07
for _ in range(int(input())): ans = 0 input() for x in map(int, input().split()): ans ^= x print(ans)
Python3 解法, 执行用时: 1600ms, 内存消耗: 13760K, 提交时间: 2023-05-25 23:41:06
for _ in range(int(input())): input() ans=0 for x in map(int,input().split()): ans^=x print(ans)