BJFU 1009——抽奖

本文介绍了一种基于位运算的抽奖系统设计方案。该方案利用异或运算特性,在大量重复的整数中快速找到唯一的一个整数,即为中奖号码。文章提供了具体的输入输出示例,并指出使用scanf函数以避免超时。

描述

现在社会上的抽奖活动简直是太多了。前段时间中国联通就举办了一个很无聊的抽奖活动,规则是每人可以向中国联通的短信系统发送一个实数,系统每天会从这些数字中选择一个无重复(就是有且只有一个)且最小的数,而发送这个最小数的用户就中奖了。现在我们也来设计一个抽奖系统。实数太麻烦,我们只考虑整数的情况。给你一堆整数,其中有且只有一个整数是唯一的,这个唯一的整数就是中奖数字,请写程序挑选出中奖数字。假设除中奖数字外,其余出现的数都有且只有两个。

输入

输入包含多组测试数据,每组测试数据首先包含一个整数N,表示本组测试数据下共有N个数。N一定是奇数,0<N<10000000, 输入的N个数在int范围内。

输出

对于每组输入的数据,请输出找出的中奖数字,每组输出占一行。

样例输入

5
1 1 2 2 3
5
123456789 123456788 123456790 123456788 123456789

样例输出

3
123456790

提示

请使用scanf函数而不是cin来避免超时。



这道题用自己想的方法大大超时,百度,发现是位运算   (  ^   )异或用法。

所以,不会就看位运算的那篇博客吧。。。。。

至于原理,看懂了个大概~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值