http://acm.nyist.net/JudgeOnline/problem.php?pid=528

找球号(三)

时间限制:2000 ms  |  内存限制:3000 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
解题思路A:最直接的思路,排序,挨个检查。
代码未通过,MLE了:
 #include <iostream>
#include <cstdio>
#include <cstring>
#include <set>
#include <algorithm> using namespace std; int am[];
int m; int main(){
while(~scanf("%d",&m)){
for(int i=;i<m;i++){
scanf("%d",&am[i]);
}
sort(am,am+m);
int t;
bool b=false;
for(int i=;i<m;i++){
if(!b) t=am[i],b=true;
else if(t==am[i]){
b=false;
}else{
printf("%d\n",t);
goto tt;
}
}
printf("%d\n",t);
tt:;
}
return ;
}

解题思路B:利用set,每查相同即erase,减少内存占用。

代码AC:

 #include <iostream>
#include <cstdio>
#include <cstring>
#include <set>
#include <algorithm> using namespace std; int main(){
int m,t;
set<int> se;
set<int>::iterator it;
while(~scanf("%d",&m)){
for(int i=;i<m;i++){
scanf("%d",&t);
it=se.find(t);
if(it!=se.end()){
se.erase(it);
}else{
se.insert(t);
}
}
it=se.begin();
printf("%d\n",*it);
se.erase(se.begin());
}
return ;
}

解题思路C:stl有个缺点,就是效率较低,有部分无用内存。这道题有意思的地方是,可以把所有数据直接进行异或,奇数那个编号在异或后会显示出来(偶数的都抵消了)。

代码AC:

 #include <iostream>
#include <cstdio>
#include <cstring>
#include <set>
#include <algorithm> using namespace std; int main(){
int m,t,ans;
while(~scanf("%d",&m)){
ans=;
for(int i=;i<m;i++){
scanf("%d",&t);
ans^=t;
}
printf("%d\n",ans);
}
return ;
}

nyoj528-找球号(三) 【位运算】的更多相关文章

  1. NYOJ528 找球号(三)位运算

    找球号(三) 时间限制:2000 ms  |  内存限制:3000 KB 难度:2   描述 xiaod现在正在某个球场负责网球的管理工作.为了方便管理,他把每个球都编了号,且每个编号的球的总个数都是 ...

  2. nyoj 找球号三(除了一个数个数为基数,其他为偶数,编程之美上的)

    #include<iostream> #include<stdio.h> using namespace std; int main() { int len; while(ci ...

  3. nyoj 528 找球号(三)(哈希)

    点解:题目链接 两种办法,1是使用容器set做 2必须知道这个结论,  突然感觉数论很强大啊,,,, /*//set容器处理 出一次加进去,再出现删掉,这个最后留下的就是那个只出现基数次的 #incl ...

  4. nyist oj 138 找球号(二)(hash 表+位运算)

    找球号(二) 时间限制:1000 ms  |  内存限制:65535 KB 难度:5 描写叙述 在某一国度里流行着一种游戏.游戏规则为:现有一堆球中.每一个球上都有一个整数编号i(0<=i< ...

  5. nyoj_528_找球号(三)_201404152050

    找球号(三) 时间限制:2000 ms  |  内存限制:3000 KB 难度:2   描述 xiaod现在正在某个球场负责网球的管理工作.为了方便管理,他把每个球都编了号,且每个编号的球的总个数都是 ...

  6. 找球号(三)南阳acm528(异或' ^ ')

    找球号(三) 时间限制:2000 ms  |  内存限制:10000 KB 难度:2   描述 xiaod现在正在某个球场负责网球的管理工作.为了方便管理,他把每个球都编了号,且每个编号的球的总个数都 ...

  7. nyoj138 找球号(二)_离散化

    找球号(二) 时间限制:1000 ms  |  内存限制:65535 KB 难度:5   描述 在某一国度里流行着一种游戏.游戏规则为:现有一堆球中,每个球上都有一个整数编号i(0<=i< ...

  8. ACM 找球号(一)

    找球号(一) 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 在某一国度里流行着一种游戏.游戏规则为:在一堆球中,每个球上都有一个整数编号i(0<=i<= ...

  9. nyoj 86 找球号(一)

    点击打开链接 找球号(一) 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 在某一国度里流行着一种游戏.游戏规则为:在一堆球中,每个球上都有一个整数编号i(0<=i ...

  10. nyoj 86 找球号(一)

    找球号(一) 时间限制:3000 ms  |            内存限制:65535 KB 难度:3   描述 在某一国度里流行着一种游戏.游戏规则为:在一堆球中,每个球上都有一个整数编号i(0& ...

随机推荐

  1. [转] AForge.NET 图像处理类

    https://www.nuget.org/packages?q=AForge.NET https://baike.baidu.com/item/AForge.NET/114415?fr=aladdi ...

  2. IntelliJ IDEA小问题解决方法------(持续更新)

    1:IDEA运行时报错提示“找不到或无法加载主类”:在确保IDEA开发环境无误后->file->invalidate Cache/restart,之后再重新build.问题解决. 2.如何 ...

  3. Ubuntu14.04配置jdk1.8.0_25,可切换版本

    下载jdk:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 解压: sudo m ...

  4. java中的URLConnection和HttpURLConnection有什么区别(因为我自己搜到别人写的区别看下来都没有什么区别)

    今天看了一下公司同事的代码,如下 URLConnection connection = openConnection(localURL); HttpURLConnection httpURLConne ...

  5. Java反射机制 —— 简单了解

    一.概述 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为jav ...

  6. Kubernetes 无法删除pod实例的排查过程

    今天在k8s集群创建pod时,执行了如下命令: #kubectl run busybox-service --image=busybox --replicas=3 但是在创建过程中pod既然失败了, ...

  7. Bogart BogartAutoCode.vb

    Imports System.Data.SqlClient Imports System.Data Public Class BogartAutoCodeDataBase Private Conn A ...

  8. uva-10112-计算几何

    题意:给你一些点,求这些点组成的三角形面积最大,而且三角形内不能包含其他点 #include <iostream> #include <math.h> #include< ...

  9. easyui datagrid列使用按钮的一些心得(转)

    http://blog.csdn.net/sskicgah/article/details/16939959 以前,用easyui的datagrid,有时候会用到一些操作选项,比如代码如下: $('# ...

  10. scala.XML处理

    XML scala提供了对xml字面量的内建支持,我们可以很容易的在程序代码中生成xml片段, scala类库也包含了对xml常用处理的支持 有时候scala会错误识别出xml字面量 如x < ...