HDU 5650 so easy

来源:互联网 发布:网络安全大数据分析 编辑:程序博客网 时间:2024/06/03 15:58

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5650

代码:

#include<stdio.h>#include<string.h>using namespace std;int main(){    int t;    scanf("%d",&t);    while(t--)    {        int n;        scanf("%d",&n);        int a[1005];        for(int i=0;i<n;i++)            scanf("%d",&a[i]);        if(n>1)            printf("0\n");        else             printf("%d\n",a[0]);    }}

我们考虑集合中的每个数x对答案的贡献。 设集合有n个数,则包含x的子集个数有2^(n-1)个。 那么当n > 1时,x出现了偶数次,所以其对答案的贡献就是0;当 n = 1时,其对答案的贡献是 x。

如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。
0 0