抽王八 CCUT Online Judge (运算符模板题)

抽王八

描述

  本题不同版本之间唯一的区别就是数据范围。

  “抽王八”是一种简单有趣的扑克牌游戏,要玩这个游戏,需要准备若干张扑克牌。我们今天使用的扑克牌比较特殊,没有花色,只有数字,每张牌上都写着一个正整数,最小为1,最大为10⁹,并且每种牌都有无限张。参与游戏的玩家需要至少两个人,人数没有上限。

这个游戏的准备步骤如下:

  1. 首先,牌堆初始为空。
  2. 选定一个正整数 p(1≤ p ≤10⁹)。
  3. 向牌堆里加入 x 张写着正整数 p 的扑克牌,其中 x 为任意一个大于 0 的偶数。
  4. 重复 2 到 3 ,直到觉得牌堆中的牌够多了为止。
  5. 将牌堆洗乱,从中抽出一张牌扔掉。此时,牌堆里有 n 张牌。
  6. 将牌堆里的牌随机分发给每位玩家作为手牌。
  7. 每位玩家在自己的手牌中如果出现了两张数字相同的牌(称为“对”)则把这两张牌扔掉,重复这个过程直到手牌中没有“对”为止。

  然后游戏正式开始,若干位玩家坐成一圈,指定一位玩家为先手,从先手玩家开始,轮流进行回合。

  在一位玩家的回合中,他要从他右手边玩家的手牌中随机抽一张加入到自己的手牌中,然后如果自己的手牌中有两张数字相同的牌,则把这两张牌扔掉。之后,所有手里没有手牌的玩家退出游戏。

  在一位玩家的回合结束后,轮到该玩家左手边的玩家进行下一回合。

  游戏持续进行,当游戏中只剩一位玩家时游戏结束。留在游戏中的这一位玩家输掉游戏并被称为“王八”,“王八”将会受到惩罚。

  不难证明,在游戏结束时“王八”的手里有且只有一张牌。

  现在,游戏的准备阶段刚刚完成第 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;
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GUESSERR

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值