抽王八
描述
本题不同版本之间唯一的区别就是数据范围。
“抽王八”是一种简单有趣的扑克牌游戏,要玩这个游戏,需要准备若干张扑克牌。我们今天使用的扑克牌比较特殊,没有花色,只有数字,每张牌上都写着一个正整数,最小为1,最大为10⁹,并且每种牌都有无限张。参与游戏的玩家需要至少两个人,人数没有上限。
这个游戏的准备步骤如下:
- 首先,牌堆初始为空。
- 选定一个正整数 p(1≤ p ≤10⁹)。
- 向牌堆里加入 x 张写着正整数 p 的扑克牌,其中 x 为任意一个大于 0 的偶数。
- 重复 2 到 3 ,直到觉得牌堆中的牌够多了为止。
- 将牌堆洗乱,从中抽出一张牌扔掉。此时,牌堆里有 n 张牌。
- 将牌堆里的牌随机分发给每位玩家作为手牌。
- 每位玩家在自己的手牌中如果出现了两张数字相同的牌(称为“对”)则把这两张牌扔掉,重复这个过程直到手牌中没有“对”为止。
然后游戏正式开始,若干位玩家坐成一圈,指定一位玩家为先手,从先手玩家开始,轮流进行回合。
在一位玩家的回合中,他要从他右手边玩家的手牌中随机抽一张加入到自己的手牌中,然后如果自己的手牌中有两张数字相同的牌,则把这两张牌扔掉。之后,所有手里没有手牌的玩家退出游戏。
在一位玩家的回合结束后,轮到该玩家左手边的玩家进行下一回合。
游戏持续进行,当游戏中只剩一位玩家时游戏结束。留在游戏中的这一位玩家输掉游戏并被称为“王八”,“王八”将会受到惩罚。
不难证明,在游戏结束时“王八”的手里有且只有一张牌。
现在,游戏的准备阶段刚刚完成第 5 步,牌堆中的牌还没有分发给玩家。你能看到游戏初始牌堆里的所有牌,你需要回答:当游戏结束时,“王八”手里的那张牌上面的数字是多少。
抽王八(一)
输入
第一行输入一个正整数 T ,表示一共有 T 组样例(1≤ T ≤ 100)。
然后对于每一组样例,首先在一行中输入一个正整数 n (1≤ n ≤52),表示牌堆中扑克牌的数量。保证 n 是奇数。然后在一行中输入 n 个正整数 a₁,…,aₙ (1≤ aᵢ ≤13),表示牌堆中每张扑克牌上面的数字。
输出
对于每一组样例,在一行中输出一个正整数,表示当游戏结束时“王八”手里那张牌上面的数字。
抽王八(二)
输入
第一行输入一个正整数 T ,表示一共有 T 组样例(1≤ T ≤ 10⁵)。
然后对于每一组样例,首先在一行中输入一个正整数 n (1≤ n ≤10⁵),表示牌堆中扑克牌的数量。保证 n 是奇数。然后在一行中输入 n 个正整数 a₁,…,aₙ (1≤ aᵢ ≤10⁹),表示牌堆中每张扑克牌上面的数字。
保证所有样例中 n 的总和不超过10⁵。
输出
对于每一组样例,在一行中输出一个正整数,表示当游戏结束时“王八”手里那张牌上面的数字。
抽王八(三)
输入
第一行输入一个正整数 T ,表示一共有 T 组样例(1≤ T ≤ 10⁵)。
然后对于每一组样例,首先在一行中输入一个正整数 n (1≤ n ≤10⁷),表示牌堆中扑克牌的数量。保证 n 是奇数。然后在一行中输入 n 个正整数 a₁,…,aₙ (1≤ aᵢ ≤10⁵),表示牌堆中每张扑克牌上面的数字。
保证所有 n 的总和不超过10⁷。
输出
对于每一组样例,在一行中输出一个正整数,表示当游戏结束时“王八”手里那张牌上面的数字。
抽王八(四)
输入
第一行输入一个正整数 T ,表示一共有 T 组样例(1≤ T ≤ 10⁷)。
然后对于每一组样例,首先在一行中输入一个正整数 n (1≤ n ≤10⁷),表示牌堆中扑克牌的数量。保证 n 是奇数。然后在一行中输入 n 个正整数 a₁,…,aₙ (1≤ aᵢ ≤10⁹),表示牌堆中每张扑克牌上面的数字。
保证所有 n 的总和不超过10⁷。
输出
对于每一组样例,在一行中输出一个正整数,表示当游戏结束时“王八”手里那张牌上面的数字。
输入样例
2
5
3 3 1 5 5
11
8 8 8 8 8 8 8 6 8 8 8
输出样例
1
6
提示
输入文件很大,请使用scanf。
!!!!别看代码!!!!!
!!!!看代码这个题就废了!!!!
!!!!别看代码!!!!!
!!!!看代码这个题就废了!!!!
!!!!别看代码!!!!!
!!!!看代码这个题就废了!!!!
!!!!标题就是提示!!!!
!!!!别看代码!!!!!
!!!!看代码这个题就废了!!!!
!!!!标题就是提示!!!!
!!!!别看代码!!!!!
!!!!看代码这个题就废了!!!!
!!!!标题就是提示!!!!
!!!!别看代码!!!!!
!!!!看代码这个题就废了!!!!
!!!!标题就是提示!!!!
!!!!别看代码!!!!!
!!!!看代码这个题就废了!!!!
!!!!标题就是提示!!!!
!!!!别看代码!!!!!
!!!!看代码这个题就废了!!!!
!!!!标题就是提示!!!!
!!!!别看代码!!!!!
!!!!看代码这个题就废了!!!!
!!!!标题就是提示!!!!
!!!!别看代码!!!!!
!!!!看代码这个题就废了!!!!
!!!!标题就是提示!!!!
!!!!别看代码!!!!!
!!!!看代码这个题就废了!!!!
!!!!标题就是提示!!!!
!!!!别看代码!!!!!
!!!!看代码这个题就废了!!!!
!!!!标题就是提示!!!!
!!!!别看代码!!!!!
!!!!看代码这个题就废了!!!!
!!!!标题就是提示!!!!
代码:
#include <stdio.h>
int main(){
int k,n,i,j;
long long sum;
scanf("%d",&k);
while(k--){
for(scanf("%d",&n),i=sum=0;i<n;i++)
scanf("%d",&j),sum^=j;
printf("%d\n",sum);
}
return 0;
}