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 ...
随机推荐
- nginx配置限制同一个ip的访问频率方法
1.在nginx.conf里的http{}里加上如下代码: limit_conn_zone $binary_remote_addr zone=perip:10m; limit_conn_zone ...
- oracle中regexp_like/instr/substr/replace介绍和例子
ORACLE中的支持正则表达式的函数主要有下面四个: 1,REGEXP_LIKE :与LIKE的功能相似 2,REGEXP_INSTR :与INSTR的功能相似 3,REGEXP_SUBSTR :与S ...
- C249: 'DATA': SEGMENT TOO LARGE“解决方法 | keilC51设置编译模式:SMALL,COMPACT,LARGE
"Keil Cx51编译器提供三条编译模式控制命令:SMALL,COMPACT,LARGE,它们对变量存储器空间的影响如下. SMALL:所有变量都被定义在8051单片机的片内RAM中,对这 ...
- 小白都能看懂的 Spring 源码揭秘之Spring MVC
目录 前言 Spring MVC 请求流程 Spring MVC 两大阶段 初始化 HttpServletBean#init() FrameworkServlet#initServletBean Fr ...
- 使用git clone 报错curl56 errno 10054解决方法
使用git clone 报错curl56 errno 10054解决方法 ----------------版权声明:本文为CSDN博主「伽马射线爆」的原创文章,遵循CC 4.0 BY-SA版权协议,转 ...
- phpstorm chrome 添加xdebug扩展
转:https://blog.csdn.net/ltcm_sakura/article/details/102967859 一.Xdebug helper:php调试插件 http://chromec ...
- flash的TotalFrames显示undefined
通过js来操作flash的时候,获取到总帧数的是属性.TotalFrames,而不是属性TotalFrames().在asp.net中,js放在最后可以在一定程度上避免当前flash没有加载完,导致获 ...
- 经历了源码的痛苦,掌握DRF的核心序列化器
目录 DRF的核心--序列化器 序列化器 什么是序列化和反序列化? 序列化 序列化demo 字段类型 字段参数 序列化自定制返回字段 方法一:在序列化类(serializers.py)中写 方法二:在 ...
- 基于react的audio组件
样式请自己定义哦~需要其他功能请自行添加! // 组件调用 <Audio src={src地址} id={srcID}/> audio属性 src 歌曲的路径 preload 是否在页面加 ...
- 用Node处理文件上传
前言 在Web开发中,文件上传是一个非常常见.非常重要的功能.本文将介绍如何用Node处理上传的文件. 需求分析 由于现在前后端分离很流行,那么本文也直接采用前后端分离的做法.前端界面如下: 用户从浏 ...