Codeforces Round #742 (Div. 2) B. MEXor Mixup
题意: 给出MEX 和 XOR(分别表示1. 本串数不存在的最小非负数 2. 本串数所有数异或后的结果)
求出这串数最少有几个数, 1 ≤ MEX ≤ 3⋅105; 0 ≤ XOR ≤ 3⋅105
解法: 首先MEX前面的数一定要有, 其次还需要几个数才能成功?
最简单的: 前面的数异或的结果(记为aa)=XOR, 输出结果就是前MEX个数(包含0)
其它一般情况来说, 此时只需要一个数就可以成功, 但是!!! MEX 是不能有的, 所以若aa^MEX == XOR就需要两个数异或得到MEX
总结: aa==XOR 结果: MEX
aa^MEX==XOR 结果: MEX+2
else 结果: MEX+1
附: 异或(^) 二进制表示数字相同为0, 不同为1
代码实现
#include <iostream>
#include <algorithm>
#include <cmath>
#include <string>
#include <cstring>
#include <map>
using namespace std;
//
// typedef long long LL;
//
const int N = 110;
int b1, b;
int a[400010]; int main()
{
for(int i = 1; i < 400000; i ++)
a[i]= a[i-1]^i;
int t;
cin >> t;
while(t --)
{
cin >> b1>> b;
int res = a[b1-1]; if(res == b)
cout << b1;
else if((res ^ b1) == b)
cout << b1+2;
else
cout << b1+1;
puts("");
} return 0;
}
补充!!!
由于 MEX 的值为 a 那么说明 数组中存在 1 ~ a - 1 的这些元素 , 而通过计算 1 ^ 2 ^ 3 ^ 4.... ^ a - 1 我们会发现一个性质
int change(int n)
{
if(n == 1) return 0;
else if (n % 4 == 2) return 1;
else if(n % 4 ==3) return n;
else if(n % 4 == 1) return n - 1;
else if(n % 4 == 0) return 0;
}
Codeforces Round #742 (Div. 2) B. MEXor Mixup的更多相关文章
- Codeforces Round #742 (Div. 2)
A. Domino Disaster 思路 按照题意模拟即可 如果是 对应关系为R --> R L --> L U --> D D --> U AC_CODE inline v ...
- Codeforces Round #742 (Div. 2)题解
链接 \(A,B\)题签到,就完了. \(C\)题,考虑进位时多进一位,由于是隔一位进的,所以可以发现奇数位和偶数位是相互独立的,那么我们就把奇数位和偶数位单独拉出来组成数字例如:34789,我们单独 ...
- Codeforces Round #366 (Div. 2) ABC
Codeforces Round #366 (Div. 2) A I hate that I love that I hate it水题 #I hate that I love that I hate ...
- Codeforces Round #354 (Div. 2) ABCD
Codeforces Round #354 (Div. 2) Problems # Name A Nicholas and Permutation standard input/out ...
- Codeforces Round #368 (Div. 2)
直达–>Codeforces Round #368 (Div. 2) A Brain’s Photos 给你一个NxM的矩阵,一个字母代表一种颜色,如果有”C”,”M”,”Y”三种中任意一种就输 ...
- cf之路,1,Codeforces Round #345 (Div. 2)
cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅..... ...
- Codeforces Round #279 (Div. 2) ABCDE
Codeforces Round #279 (Div. 2) 做得我都变绿了! Problems # Name A Team Olympiad standard input/outpu ...
- Codeforces Round #262 (Div. 2) 1003
Codeforces Round #262 (Div. 2) 1003 C. Present time limit per test 2 seconds memory limit per test 2 ...
- Codeforces Round #262 (Div. 2) 1004
Codeforces Round #262 (Div. 2) 1004 D. Little Victor and Set time limit per test 1 second memory lim ...
随机推荐
- CentOS 7 源码安装 Zabbix 6.0
Zabbix 主要有以下几个组件组成: Zabbix Server:Zabbix 服务端,是 Zabbix 的核心组件.它负责接收监控数据并触发告警,还负责将监控数据持久化到数据库中. Zabbix ...
- 百度Paddle速查_CPU和GPU的mnist预测训练_模型导出_模型导入再预测_导出onnx并预测
需要做点什么 方便广大烟酒生研究生.人工智障炼丹师算法工程师快速使用百度PaddelPaddle,所以特写此文章,默认使用者已有基本的深度学习概念.数据集概念. 系统环境 python 3.7.4 p ...
- C++ cout 数字之间进制的转换
转换一个数变成8进制,则为 cout << oct << x << endl; 转换一个数变为16进制,为 cout << hex << x ...
- Struts2里面有什么隐式对象?
Struts 2.1 的隐式对象 (这些隐式对象都是Map类型) parameters 用于访问请求参数 request 用于访问HttpServletRequest的属性 session 用于访问H ...
- POI Excel索引是从0还是1开始??
this.workbook.getSheetAt(1).getFirstRowNum() // == 0 this.workbook.getSheetAt(1).getLastRowNum() // ...
- IOC的优点是什么?
IOC 或 依赖注入把应用的代码量降到最低.它使应用容易测试,单元测试不再需要单例和JNDI查找机制.最小的代价和最小的侵入性使松散耦合得以实现.IOC容器支持加载服务时的饿汉式初始化和懒加载.
- Redis 常见的性能问题都有哪些?如何解决?
Redis 常见的性能问题都有哪些?如何解决? Master写内存快照,save命令调度rdbSave函数,会阻塞主线程的工作,当快照比较大时对性能影响是非常大的,会间断性暂停服务,所以Master最 ...
- Spring基于xml注入bean的几种方式?
(1)Set方法注入: (2)构造器注入:①通过index设置参数的位置:②通过type设置参数类型: (3)静态工厂注入: (4)实例工厂:
- 用TLS/SSL保证EMQ的网络传输安全
作为基于现代密码学公钥算法的安全协议,TLS/SSL能在计算机通讯网络上保证传输安全,EMQ的MQTT broker支持TLS,也可以用这种方式来确保传输安全. 参考官网:https://www.em ...
- Math.round(11.5) 等于多少?Math.round(-11.5)等于 多少?
Math.round(11.5)的返回值是 12,Math.round(-11.5)的返回值是-11.四舍五 入的原理是在参数上加 0.5 然后进行下取整.