dlut1216-位运算(异或)水题

题目

巴克力 Bakerli
 
巴克力口头禅:哥斯拉是我偶像喔!
 
星座:狮子座
生日:7月28日
血型:O型
年龄:1岁
生肖:狗
身高:148公分
体重:289公斤
 
职业:无
兴趣:龙族战士
宠物:恐龙蛋
最喜欢:躺在龙妈妈怀里睡觉
最讨厌:玩射杀恐龙GAME的人
偶像:哥斯拉
语言:中文
 
据说从侏罗纪公园的那次恐龙大逃亡中,有一只逃出来的小恐龙巴克力,为了返回恐龙世界,一直在追寻传说中的时空穿梭机,而来到了大富翁的世界。在它幼小的心灵里,由于心存着对人类的仇恨,加之对哥斯拉的崇拜,所以对人类的建筑物有着较强的破坏欲,所到之处皆会被它踩为废墟。
 
不过它的天性还是很顽皮的,对没见过的新鲜事物也很感兴趣,对没有伤害它恶意的人则比较友善,反之,如果让它看到你在玩射杀恐龙之类的GAME,它就会愤怒的象哥斯拉那样把你的房屋踏为平地。所以千万要小心哟。
 
巴克力非常喜欢破坏建筑物。地球的人们想到了一种方法,来测试每个建筑物是否保存完好。人们研制了一种探测雷达,每隔一段时间会向每个建筑物发送一个信号,然后建筑物都有接受这种信号装置,一旦接受到信号后,会立即把自己建筑物的ID反馈给地面上的探测中心。依据这种办法,第二次探测中心接收到建筑物反馈的ID的时候,人们能马上知道有没有建筑物遭到破坏,如果有建筑物遭到破坏,人们也能立即知道该建筑物的ID。现在,这个系统的算法核心部分交给你来实现了!
 
我们知道,雷达向每个建筑发送的信号传输是有一定时间的(不可以忽略),但是建筑物把ID反馈给地面上的探测中心是瞬间的(可以忽略),所以巴克力摧毁建筑物的时间只可能在雷达向建筑物发送信号这个时间段内。我们提供给你的数据也是关键的数据,这种数据保证如果某个建筑物遭到摧毁的话,也只会发生在第二次雷达向建筑物发送信号的阶段内,并且巴克力至多摧毁一个建筑物。

Input

T<=5代表测试数据个数
每组测试数据第一行,一个正整数1<=N<=5000000代表两次雷达接收到建筑物反馈的建筑物ID的总数目
之后一行给出N个正整数,每个数范围为[1,100000000]代表雷达接收到的建筑物的ID
保证输入数据合法

Output

对每组测试数据,如果有建筑物被毁掉则输出该建筑物的ID,如果没有则输出-1

Sample Input

221 111

Sample Output

-11

如果为偶数直接在输入完毕后输出-1,奇数的话,则使用异或,因为A^B^A=B,所以最后剩下的数一定为被破坏的‘id;

#include<cstdio>
int main()
{
    int T;
    scanf("%d",&T);
    while(T--){
        int N;
        scanf("%d",&N);
        int xoy=0;
        for(int i=1;i<=N;i++){
            int temp;scanf("%d",&temp);
            if(N&1)xoy^=temp;
        }
        printf("%d\n",(N&1)?xoy:-1);
    }
    return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值