NOJ [1314] Brave Sword
是不是想起了筷子大作战这一题?
(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相关推荐
- 买拍参考贴中羽主力拍统计
统计了下242楼的主力拍信息,近500多条吧,虽然不具备代表性,也能给类似我这种选择困难症提供一个参考. 如果想找使用最多的拍子,直接跳到第3部分. 数据来源于中羽评论区:https://bbs.ba ...
- 推荐一个500左右的羽毛球拍
好的,我推荐一款叫做"Victor Brave Sword"的羽毛球拍.它的价格大约在500元左右,是一款性价比较高的羽毛球拍.它拥有舒适的手柄.优秀的打击感和控制能力,是适合初学 ...
- ACM 寻找众多情侣堆中的两个基佬
题目描述 When Wodex is running in his village to live down, He fainted by fumes. Fortunately, a mysterio ...
- 某程序员吐槽:女朋友老板给她包了1314元开工红包,正常吗?网友:这是绿包!...
开工红包到手,几家欢乐几家愁.有个程序员小哥哥的女朋友发了开工红包,但他却没有觉得高兴,这是为什么呢? 原来女朋友的老板给她包了1314元的红包,这个数字似乎有点不太对劲,小哥哥忍不住发帖吐槽:这正常 ...
- brave浏览器_Brave for Mac(安全浏览器)
Brave是一个mac安全的Web浏览器.勇敢不仅仅是一个浏览器.这是一种思考网络运作方式的新方式. Brave是一个开源的,由客户隐私为重点,以性能为导向的网络先驱构建.使用Brave实现隐私,安全 ...
- brave浏览器_兼容Chrome 插件的Brave浏览器,带给你更快速的上网冲浪体验
目前浏览器中用的比较多的还是Chrome,尽管后来Firefox 和360用的人都是很多,在其浏览器中加入了像是扩展等功能,但不讳言的是Firefox 在速度上有点差强人意,相容性也不够全面,整体来说 ...
- Hdoj 1846.Brave Game 题解
Problem Description 十年前读大学的时候,中国每年都要从国外引进一些电影大片,其中有一部电影就叫<勇敢者的游戏>(英文名称:Zathura),一直到现在,我依然对于电影中 ...
- motan yar php,motan学习笔记 六 opentracing Brave+zipkin实现-Go语言中文社区
前面我们学习了,opentracing的接口定义 本文来学习motan用filter 来拦截请求,并用brace来实现,上报数据到zipkin zipkin是什么 本文主要讲brace 如何实现ope ...
- brave浏览器_区块链浏览器 Brave 为广告观看者提供 BAT 代币奖励
4月24日,去中心化浏览器 Brave 宣布推出 Brave 广告,用户可以通过观看广告获得奖励. Brave 是一个基于区块链的开源浏览器,它过滤了广告以及网站追踪.公告称,Brave 的用户现可以 ...
最新文章
- 【PHPExcel】设置打印格式
- 补8.python之面相对象part.7(类相关函数的补充)
- JDK10都发布了,nio你了解多少?
- 1000万存在银行,一年的利息够日常生活费吗?
- 二分查找非递归方式实现
- ACM竞赛常用STL(二)之STL--algorithm
- 论文都看不懂,你还搞什么人工智能?
- SSH框架总结(框架分析+环境搭建+实例源码下载)
- 使用jQuery Mobile设计移动设备网站
- 天津市计算机网络应用大赛,2017年天津市中等职业学校“圣纳·新道杯”技能大赛计算机应用技术技能比赛在我校开赛...
- C# 控制台程序(Console Application )启动后隐藏
- css 响应式布局(媒体查询),兼容pc,ipad,移动端的布局单位
- 基因表达式编程(GEP)自学 第【3】天 Python 实现
- MCU 微控制器,在实际项目中如何选型(以 STM32为例)
- 闭上眼睛时,会感触到那清风拂过脸颊的柔
- 微服务简介,Euraka,Ribbon,openFeign
- 浙江省计算机二级c知识点,浙江省计算机二级c程序设计考试大纲
- 大聪明教你学Java设计模式 | 第二篇:建造者模式
- 计算机网络——计算机网络的性能指标
- android编辑框边框设计,Android设计规范 Material Design-Components(17文本框)
热门文章
- 2022-07-11 BUD元宇宙面试记录及复盘(还是要多复习下语言的细节)
- 1024 的那天,我这个三线的程序员是这样度过的
- Eclipse改成中文版本
- 教你个人邮箱怎么注册?126邮箱安全中心在哪里?
- 隼鸟2号着陆“龙宫”并采集样品
- 《Planning Algorithm》 第三章:几何表示与变换
- 物联卡是正规卡还是漏洞卡?一篇最简单明了的解释!
- 【实验2 选择结构】7-4 sdut-C语言实验——求两个整数之中较大者
- 我的世界手机版虚拟人生服务器,我的世界虚拟人生mod攻略 虚拟人生mod怎么玩...
- 计算机丢失wlanapi all,如何解决wlanapi.dll丢失的问题