[vijos 1684]丢失的筷子

背景

Talent先生接到了一份定制筷子的任务,在这项任务中,由于筷子有各种型号,所以每对筷子的长度不一定相同,几天的努力后,Talent先生终于如期完成了所有筷子的制作工作,他走进卧室,准备好好的睡一觉再将这些筷子运走…
然而…Talent先生还没睡着…就见他的小弟弟“申申”慌慌张张的跑进来:”我错了…我…我不小心弄丢了一根筷子”

描述

Talent先生立即跟随“申申”来到了“案发现场”,在装筷子的箱子里,果然只有奇数根筷子了…,送货的日期马上就要到了..Talent知道现在应该做的是尽快重制那根筷子而不是和“申申”算帐…而“申申”却竟然忘记了自己弄丢的筷子的长度(你可以理解为型号)..于是Talent给了“申申”一个任务:通过将箱子里的筷子逐一配对的方式进行查找,弄清到底丢了什么型号的筷子。

由于“申申”太小了,很难完成这项任务,便找到了精通“OI”的你,“申申”将给你目前箱子里各个筷子的长度(不一定按顺序),而你需要告诉申申,所丢掉的筷子的长度是多少。

输入格式

第一行:一个整数N:表示目前货箱里有N根筷子(N是奇数)。
第二行:N个整数,分别代表目前货箱里各个筷子的长度L。

输出格式

只有一行:有一个数字,代表丢失的那根筷子的长度。

样例输入

21
1 2 3 4 5 6 7 8 9 10 11 1 2 3 4 5 6 7 8 9 10

样例输出

11

限制

共有5个测试数据,每个测试数据包含1个测试点,每个测试点1s
祝福大家…不要超时….不要运行时错误….

输入数据中N的大小猜测是1000万到2000万。筷子的长度在int范围内。

题解:
学到了新的姿势,异或运算真是个好东西。主要是他符合交换律就更好啦!!! ( a xor a == 0 , 0 xor a == a )

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<queue>
#include<algorithm>
#define ll long long
#define LiangJiaJun main
using namespace std;
int n;
ll x,ans;
int LiangJiaJun(){
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        scanf("%lld",&x);
        ans ^= x;
    }
    printf("%lld\n",ans);
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值