链接地址:http://ac.nbutoj.com/Problem/view.xhtml?id=1314

是不是想起了筷子大作战这一题?
(1) 那题的意思就是有很多筷子,除了其中一只,其他都是成对等长出现的。
直接异或,所有相同的数都会被抵消(异或运算中,相同位置值相等的结果为0,就是说所有成对出现的都会最终成为0),最后的结果自然是那个落单的数了。

然后,我们来看这题。
(2) 这题的意思是有很多把钥匙,每把钥匙上都有编号。有相同编号的两把钥匙都要依次排除,这样最后肯定剩下2把钥匙,那么这两把钥匙的编号是不一样的,就是答案所要的钥匙。

如果是有两个互不相同的数,我们可以把他分成两个段,段名分别为A,B。这里为了解释方便,给出10个数,分别为a,a,b,b,c,c,d,d,e,f;
 
现在我们知道,只要A段和B段能满足上面的(1)所说的情形,即两个不同的数(e,f分别在A,B段内)分别在不同的段内,其他的数成对出现在相同的段内,就可以仿照(1)得到结果。举个例子A(a,a,b,b,e);B(c,c,d,d,f);
 
是不是觉得很难分呢?怎么才能按照上面的形式分开成为A,B呢?别急,注意咯,我上面说的是其他数成对出现,并不是一定要对半分,也可以是A(a,a,b,b,c,c,d,d,e);B(f);或者A(a,a,b,b,c,c,e);B(d,d,f);是不是有点头绪了?没有?别紧张,往下看,快搞定了
 
我们先来想想如何分e,f。首先,他们本身不相等,所以e^f的值一定不为0,也就是说,e^f的值转换成2进制,一定至少有一个1出现。好的,我们从右向左找第一次出现1的位置,将所有数中,这个位置是1的放进A,是0的放进B。OK,完全符合我们对AB段的要求,再从A,B中分别异或找出e,f不是问题!

出题代码:

#include <set>
#include <map>
#include <list>
#include <stack>
#include <queue>
#include <cmath>
#include <cstdio>
#include <vector>
#include <iomanip>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <algorithm>
using namespace std;#define N 1000010int a[N];
int b[N];
int c[N];int main()
{int n;//freopen("data.in", "r", stdin);//freopen("data.out", "w", stdout);while (~scanf("%d", &n)){int s = 0;for (int i = 0; i < n; i++){scanf("%d", &a[i]);s ^= a[i];}int p;for (int i = 0; i < 32; i++){if ((s >> i) % 2 == 1){p = i;break;}}int bn, cn;bn = cn = 0;for (int i = 0; i < n; i++){if ((a[i] >> p) % 2) b[bn++] = a[i];else c[cn++] = a[i];}int s1, s2;s1 = s2 = 0;for (int i = 0; i < bn; i++){s1 ^= b[i];}for (int i = 0; i < cn; i++){s2 ^= c[i];}printf("%d %d\n", min(s1, s2), max(s1, s2));}return 0;
}

NOJ [1314] Brave Sword相关推荐

  1. 买拍参考贴中羽主力拍统计

    统计了下242楼的主力拍信息,近500多条吧,虽然不具备代表性,也能给类似我这种选择困难症提供一个参考. 如果想找使用最多的拍子,直接跳到第3部分. 数据来源于中羽评论区:https://bbs.ba ...

  2. 推荐一个500左右的羽毛球拍

    好的,我推荐一款叫做"Victor Brave Sword"的羽毛球拍.它的价格大约在500元左右,是一款性价比较高的羽毛球拍.它拥有舒适的手柄.优秀的打击感和控制能力,是适合初学 ...

  3. ACM 寻找众多情侣堆中的两个基佬

    题目描述 When Wodex is running in his village to live down, He fainted by fumes. Fortunately, a mysterio ...

  4. 某程序员吐槽:女朋友老板给她包了1314元开工红包,正常吗?网友:这是绿包!...

    开工红包到手,几家欢乐几家愁.有个程序员小哥哥的女朋友发了开工红包,但他却没有觉得高兴,这是为什么呢? 原来女朋友的老板给她包了1314元的红包,这个数字似乎有点不太对劲,小哥哥忍不住发帖吐槽:这正常 ...

  5. brave浏览器_Brave for Mac(安全浏览器)

    Brave是一个mac安全的Web浏览器.勇敢不仅仅是一个浏览器.这是一种思考网络运作方式的新方式. Brave是一个开源的,由客户隐私为重点,以性能为导向的网络先驱构建.使用Brave实现隐私,安全 ...

  6. brave浏览器_兼容Chrome 插件的Brave浏览器,带给你更快速的上网冲浪体验

    目前浏览器中用的比较多的还是Chrome,尽管后来Firefox 和360用的人都是很多,在其浏览器中加入了像是扩展等功能,但不讳言的是Firefox 在速度上有点差强人意,相容性也不够全面,整体来说 ...

  7. Hdoj 1846.Brave Game 题解

    Problem Description 十年前读大学的时候,中国每年都要从国外引进一些电影大片,其中有一部电影就叫<勇敢者的游戏>(英文名称:Zathura),一直到现在,我依然对于电影中 ...

  8. motan yar php,motan学习笔记 六 opentracing Brave+zipkin实现-Go语言中文社区

    前面我们学习了,opentracing的接口定义 本文来学习motan用filter 来拦截请求,并用brace来实现,上报数据到zipkin zipkin是什么 本文主要讲brace 如何实现ope ...

  9. brave浏览器_区块链浏览器 Brave 为广告观看者提供 BAT 代币奖励

    4月24日,去中心化浏览器 Brave 宣布推出 Brave 广告,用户可以通过观看广告获得奖励. Brave 是一个基于区块链的开源浏览器,它过滤了广告以及网站追踪.公告称,Brave 的用户现可以 ...

最新文章

  1. 【PHPExcel】设置打印格式
  2. 补8.python之面相对象part.7(类相关函数的补充)
  3. JDK10都发布了,nio你了解多少?
  4. 1000万存在银行,一年的利息够日常生活费吗?
  5. 二分查找非递归方式实现
  6. ACM竞赛常用STL(二)之STL--algorithm
  7. 论文都看不懂,你还搞什么人工智能?
  8. SSH框架总结(框架分析+环境搭建+实例源码下载)
  9. 使用jQuery Mobile设计移动设备网站
  10. 天津市计算机网络应用大赛,2017年天津市中等职业学校“圣纳·新道杯”技能大赛计算机应用技术技能比赛在我校开赛...
  11. C# 控制台程序(Console Application )启动后隐藏
  12. css 响应式布局(媒体查询),兼容pc,ipad,移动端的布局单位
  13. 基因表达式编程(GEP)自学 第【3】天 Python 实现
  14. MCU 微控制器,在实际项目中如何选型(以 STM32为例)
  15. 闭上眼睛时,会感触到那清风拂过脸颊的柔
  16. 微服务简介,Euraka,Ribbon,openFeign
  17. 浙江省计算机二级c知识点,浙江省计算机二级c程序设计考试大纲
  18. 大聪明教你学Java设计模式 | 第二篇:建造者模式
  19. 计算机网络——计算机网络的性能指标
  20. android编辑框边框设计,Android设计规范 Material Design-Components(17文本框)

热门文章

  1. 2022-07-11 BUD元宇宙面试记录及复盘(还是要多复习下语言的细节)
  2. 1024 的那天,我这个三线的程序员是这样度过的
  3. Eclipse改成中文版本
  4. 教你个人邮箱怎么注册?126邮箱安全中心在哪里?
  5. 隼鸟2号着陆“龙宫”并采集样品
  6. 《Planning Algorithm》 第三章:几何表示与变换
  7. 物联卡是正规卡还是漏洞卡?一篇最简单明了的解释!
  8. 【实验2 选择结构】7-4 sdut-C语言实验——求两个整数之中较大者
  9. 我的世界手机版虚拟人生服务器,我的世界虚拟人生mod攻略 虚拟人生mod怎么玩...
  10. 计算机丢失wlanapi all,如何解决wlanapi.dll丢失的问题