hdu 5650

来源:互联网 发布:linux可以做什么 编辑:程序博客网 时间:2024/06/01 21:24

题目概述

给定N个数构成的一个集合S,其非空子集为s,定义操作f(s)为对子集中所有数求异或,求所有f(s)结果的异或

时限

1000ms/2000ms

输入

第一行整数times,其后times组数据,每组数据第一行整数N,下一行N个整数

限制

1<=times<=20;1<=N<=1000

输出

每行一个数,为所求异或结果

样例输入

1
3
1 2 3

样例输出

0

讨论

水题,无非就是找规律,要是多给两组样例估计就直接看出来了,异或的特点就是同一个数异或自己偶数次结果为0,而除了只有一个数的情况,其他的都要异或子集偶数次,结果明了了
实现,没什么说的
没有按照平日的风格写,毕竟也用不了几行,连数组都没有

题解状态

0MS,1712K,501 B,C++

题解代码

#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define INF 0x3f3f3f3f#define MAXN 302#define memset0(a) memset(a,0,sizeof(a))int N;//数字数int main(void){    //freopen("vs_cin.txt", "r", stdin);    //freopen("vs_cout.txt", "w", stdout);    int times;    scanf("%d", &times);//input    while (times--) {        scanf("%d", &N);//input        int a;        if (N == 1) {            scanf("%d", &a);//input            printf("%d\n", a);//output        }        else {            while (N--)                scanf("%*d");//这些数根本没必要存            printf("0\n");//output        }    }}

EOF

0 0
原创粉丝点击