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 ...
随机推荐
- Java基础——System类
System包含几个有用的类字段和方法,因为成员都是静态的所以不能被实例化,可以直接通过类名调用 System类的常用方法: 方法名 说明 public static void exit(int st ...
- Python3输出九九乘法表
for i in range(1,10): for j in range(1,i+1): print('{}x{}={}\t'.format(i, j, i*j), end='') #format格式 ...
- CentOS 7.5 安装配置tigervnc-server
系统版本: [root@s10 ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) 1.安装 Gnome 包 [root@ ...
- C++设计模式 - 访问器模式(Visitor)
行为变化模式 在组件的构建过程中,组件行为的变化经常导致组件本身剧烈的变化."行为变化" 模式将组件的行为和组件本身进行解耦,从而支持组件行为的变化,实现两者之间的松耦合. 典型模 ...
- redis单机版和集群版搭建笔记-简略版
搭建单机版: 解压 tar -zxf redis-3.0.0.tar.gz 编译 cd redis-3.0.0 安装 make install prefix=/usr/local/redis-inst ...
- Redis 如何设置密码及验证密码?
设置密码:config set requirepass 123456 授权密码:auth 123456
- 本地连接MySQL云服务器步骤与解决方案
云服务器:aliyun MySQL 版本:mysql8 第一步首先,检查云服务器的 网络与安全 -> 安全组 是否开放了(MySQL)3306端口 第二步,登陆云服务器上的MySQL,检查需要远 ...
- 学习FastDfs(一)
一.简介 FastDFS是一个开源的轻量级分布式文件系统,由跟踪服务器(tracker server).存储服务器(storage server)和客户端(client)三个部分组成 fastfds有 ...
- Effective Java —— 谨慎覆盖clone
本文参考 本篇文章参考自<Effective Java>第三版第十三条"Always override toString",在<阿里巴巴Java开发手册>中 ...
- 11_滞后补偿器_Lag Compensator_Matlab_Simulink
下图中左边没有补偿器的稳态误差,右边是有只猴补偿器的稳态误差,H(s)为滞后补偿器的原因是H(s)bode图的相位图是负的 其中黄线是没有滞后补偿器的,蓝线是滞后补偿器中p = 1 ,q = 9的曲线 ...