首页 > 其他 > 详细

CF1567B MEXor Mixup

时间:2021-09-07 15:47:22      阅读:14      评论:0      收藏:0      [点我收藏+]

$ \texttt{Description} $

求出满足序列中没出现的最小的数(即 $ MEX $ )为 $ a $,序列的 $ XOR $ 值为 $ b $ 的序列的长度最小值。

$ \texttt{Solution} $

首先我们可以知道,$ 0 \sim a-1 $ 的数一定都在序列中出现过至少一次,而 $ a $ 一定不存在于序列中,那么我们可以先求出 $ 0 \sim a-1 $ 中所有数的 $ XOR $ 的值,如果他的值与 $ b $ 相等,那么答案为 $ a $ ,如果不相等,那么将它与 $ b $ 作异或,如果得出的答案不是 $ a $,那么我们只要在添加一个这个数即可,如果是 $ a $ ,我们只能用两个数异或得出这个 $ a $ ,答案为 $ a+2 $ 。

$ \texttt{Code} $

for (i=1;i<=300000;i++) f[i]=f[i-1]^i; 
	for (T=read();T;T--)
	     {
	     	a=read();b=read();
	     	ans=f[a-1]^b;
	     	if (ans==0) printf("%d\n",a);
	     	else if (ans!=a) printf("%d\n",a+1);
	     	else printf("%d\n",a+2);
	     			 }

CF1567B MEXor Mixup

原文:https://www.cnblogs.com/huangxuze/p/15237834.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!