HDU

来源:互联网 发布:软件外包保密协议 编辑:程序博客网 时间:2024/06/05 20:17

异或运算

题意:一个集合  所有子集的所有元素  进行异或运算 的结果

如题例子:{1, 2, 3} 所有子集:

{1}  {2}  {3}  {1,2}  {1,3}  {2, 3}  {1,2,3} 

每个元素出现次数为 : 2 的(n-1)次方;;;(算是数学定律 很容易推出来的)

n == 1 只有一个数 输出就好

否则 : 异运算或后结果必为 0 ;   -------------------- int x ;   x ^ x = 0 ; 恒成立

#include <iostream>#include <cstdio>using namespace std;int main() {    int T, n, m;    long long x;    scanf("%d", &T);    while(T--) {        scanf("%d", &n);        m = n;        while(m--) scanf("%lld", &x);        if(n == 1) printf("%lld\n", x);        else printf("%d\n", 0);    }    return 0;}

1 0