找球号(三)

时间限制:2000 ms  |  内存限制:10000 KB
难度:2
 
描述

xiaod现在正在某个球场负责网球的管理工作。为了方便管理,他把每个球都编了号,且每个编号的球的总个数都是偶数。有一天,xiaod发现少了一个球,你能帮他找出丢的那个球的球号吗?

 
输入
有多组测试数据。每组数据包括两行。
第一行是一个整数N(0<N<1000000),表示现在所剩的球数。
随后的一行是N个数,表示所剩的各个球的编号M(0<M<10^9)。
输出
对于每组数据,输出弄丢的那个球的球号。
样例输入
5
1 1 3 6 6
3
1 2 1
样例输出
3
2
来源
hdu改编
上传者
ACM_丁国强
算法思想:刚开始我是想要数组存储这n个数,然后从小到大快速排序,只要找到某个数的个数为奇数时,就输出,可惜内存超了,无奈~~代码如下:
 #include<stdio.h>
#include<stdlib.h>
int a[];
int f(const void *a,const void *b)
{
return *(int*)a-*(int*)b;
}
int main()
{
int n,i,t,ans,k;
while(scanf("%d",&n)!=EOF)
{
for(i=; i<n; i++)
scanf("%d",&a[i]);
qsort(a,n,sizeof(int),f);
ans = ;
k = ;
for(i=; i<n-; i++)
{
if(a[i] == a[i+])
ans++;
else
{
if(ans% == )
{
printf("%d\n",a[i]);
k = ;
break;
}
ans = ;
}
}
if(k)
printf("%d\n",a[n-]);
}
return ;
}

后来网上看了别人的,利用异或来做(大佬),思想是因为丢失的那个球号必定是奇数,所以对所有球号进行排查,必定找出。那什么是异或呢?比如:5和6异或,5的二进制101,6的二进制110等于011也就是3,两个相同的数异或时为0。具体看代码实现:

 #include<iostream>
using namespace std;
int main()
{
int n;
while(cin>>n)
{
int a,b = ;
while(n--)
{
cin>>a;
b^=a;
}
cout<<b<<endl;
}
return ;
}

随机推荐

  1. 沉淀,再出发:Maven的使用和规范

    沉淀,再出发:Maven的使用和规范 一.前言 Maven作为项目管理工具,在一个大型项目开发的每个阶段都有着很大的用处,为什么需要这个东西呢,还是为了消除不确定性,统一化管理,正如我们做的每一件事其 ...

  2. Docker的安装及加速

    使用 yum 安装(CentOS 7下) Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker . 通过 uname ...

  3. linux普通用户使用root权限执行命令的脚本

    上一篇有说到普通用户使用免密登录并使用root权限: http://www.cnblogs.com/01-single/p/8919254.html 现在使用脚本批量实现部署系统任务操作步骤: #!/ ...

  4. SAP Cloud for Customer里Sales Order和Sales Quote的建模方式

    SAP Cloud for Customer的Sales工作中心里有Sales Quote和Sales Order两个视图,一个用于销售报价单,另一个用于销售订单. 流程上是先有报价单 ,报价单是一份 ...

  5. 360网站卫士SQL注入绕过案例一个

    不要以为用了360就可以高枕无忧,直接在netcraft的site_report中找到源站服务器IP,直接SQL脱裤,甚至可获取服务器权限. 存在漏洞的网站: 手工测试存在注入点: 但是网站有360保 ...

  6. RabbitMQ的事件总线

    RabbitMQ的事件总线 在上文中,我们讨论了事件处理器中对象生命周期的问题,在进入新的讨论之前,首先让我们总结一下,我们已经实现了哪些内容.下面的类图描述了我们已经实现的组件及其之间的关系,貌似系 ...

  7. Micro

    Micro 架构与设计   Micro 架构与设计 翻译自 Micro architecture & design patterns for microservices 注: 原文作者即 Mi ...

  8. 「C语言」在Windows平台搭建C语言开发环境的多种方式

    新接触C语言,如何在Windows下进行C语言开发环境的搭建值得思考并整理. 以下多种开发方式择一即可(DEV C++无须环境准备). 注:本文知识来源于  Windows 平台搭建C语言集成开发环境 ...

  9. bootstrap table footerFormatter用法 统计列求和 sum、average等

    其实上一篇blog里已经贴了代码,简单解释一下吧: 1.showFooter: true,很重要,设置footer显示: $(cur_table).bootstrapTable({ url: '/et ...

  10. iOS的KVO使用和轻量级封装

    KVO的使用方法 注冊 [object addObserver:observer forKeyPath:@"text" options:NSKeyValueObservingOpt ...