/ WHOJ / 题库 /

最小不包含

最小不包含

题目描述

爱丽丝给鲍勃两个整数 \(a\) 和 \(b(a>0\) 和 \(b≥0)\). 作为一个好奇的孩子,鲍勃写下了一个非负整数数组(无重复),所有元素的 \(\text{MEX}\) 值等于 \(a\),所有元素的 \(\text{XOR}\) 值等于 \(b\)。

请编程求出鲍勃编写的数组的最短长度是多少?

回想一下,数组的 \(\text{MEX}(\text{Minimum~EXcluded})\) 是不属于该数组的最小非负整数,而数组的 \(\text{XOR}\) 是该数组所有元素的按位异或。

格式

输入格式

输入由多组数据。第一行包含一个整数 \(t(1≤t≤10^4)\),表示数据组数。每组数据描述如下:

每个测试用例一行,包含两个整数 \(a\) 和 \(b(1≤a≤3×10^5;0≤b≤3×10^5)\)分别数组的 \(\text{MEX}\) 和 \(\text{XOR}\)。

输出格式

对于每组数据,输出一个(正)整数,表示满足 \(\text{MEX}\) 等于 \(a\) 并且 \(\text{XOR}\) 等于 \(b\) 的最短数组的长度。我们可以证明这样的数组总是存在的。

样例1

样例输入1

5
1 1
2 1
2 0
1 10000
2 10000

样例输出1

3
2
4
2
3

样例解释

满足 \(\text{MEX}==1\) 并且 \(\text{XOR}==1\) 的数组为 \([0,2020,2021]\)。

满足 \(\text{MEX}==2\) 并且 \(\text{XOR}==1\) 的数据为 \([0,1]\)。

限制

时间:\(1s\) 空间:\(256M\)

对于 \(40\%\) 的数据:\(1≤a≤7;0≤b≤7;1≤t≤3\);构造的最短数组,元素最大值不必超过 \(15\);

对于 \(60\%\) 的数据:\(1≤a≤10^5;0≤b≤10^5;1≤t≤100\);

对于 \(100\%\) 的数据:\(1≤a≤3×10^5;0≤b≤3×10^5;1≤t≤10^4\);

来源

地址:\(zloj,J2021\)域
作者:\(jialiang2509\)