题目描述
爱丽丝给鲍勃两个整数 a 和 b(a>0 和 b≥0). 作为一个好奇的孩子,鲍勃写下了一个非负整数数组(无重复),所有元素的 MEX 值等于 a,所有元素的 XOR 值等于 b。
请编程求出鲍勃编写的数组的最短长度是多少?
回想一下,数组的 MEX(Minimum EXcluded) 是不属于该数组的最小非负整数,而数组的 XOR 是该数组所有元素的按位异或。
格式
输入格式
输入由多组数据。第一行包含一个整数 t(1≤t≤104),表示数据组数。每组数据描述如下:
每个测试用例一行,包含两个整数 a 和 b(1≤a≤3×105;0≤b≤3×105)分别数组的 MEX 和 XOR。
输出格式
对于每组数据,输出一个(正)整数,表示满足 MEX 等于 a 并且 XOR 等于 b 的最短数组的长度。我们可以证明这样的数组总是存在的。
样例1
样例输入1
样例输出1
样例解释
满足 MEX==1 并且 XOR==1 的数组为 [0,2020,2021]。
满足 MEX==2 并且 XOR==1 的数据为 [0,1]。
限制
时间:1s 空间:256M
对于 40% 的数据:1≤a≤7;0≤b≤7;1≤t≤3;构造的最短数组,元素最大值不必超过 15;
对于 60% 的数据:1≤a≤105;0≤b≤105;1≤t≤100;
对于 100% 的数据:1≤a≤3×105;0≤b≤3×105;1≤t≤104;
来源
地址:zloj,J2021域
作者:jialiang2509