CFCF2190F.Xor Product
NOI/NOI+/CTSC
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
对于非负整数 x,y 和正整数 k,定义 S(x,y,k) 为所有 (x+i)⊕(y+j) 的集合,其中 0≤i,j<k。形式化地:
S(x,y,k)={(x+i)⊕(y+j)∣0≤i,j<k}
这里 ⊕ 表示按位异或运算。
定义 f(x,k) 为对于所有非负整数 y(即 y≥0),集合 S(x,y,k) 的最大可能大小。
给定整数 x 和 k,计算 f(x,k)。
输入格式
本题包含多组测试用例。第一行包含一个整数 t(1≤t≤104),表示测试用例数量。
接下来的 t 行,每行包含两个整数 x 和 k(1≤x,k≤1017)。
输出格式
对于每个测试用例,输出一个整数,即 f(x,k) 的值。
输入输出样例
输入#1
6 67 1 7 3 100 12 1 1043 1526 1043 88946092640567295 100000000000000000
输出#1
1 7 32 3128 4167 398158383604301822
说明/提示
在第一个样例中,由于 k=1,无论 y 取何值,集合 S 总是恰好包含一个元素。例如,若选取 y=69,则有 S(67,69,1)={67⊕69}={6},因此 ∣S(x,y,k)∣=1。
在第二个样例中,x=7,k=3。最优的 y 取值是 8。(x+i)⊕(y+j) 的所有值为:
[7⊕8,7⊕9,7⊕10,8⊕8,8⊕9,8⊕10,9⊕8,9⊕9,9⊕10]
简化后是 [15,14,13,0,1,2,1,0,3]。不同的取值为 S(7,8,3)={0,1,2,3,13,14,15},其大小为 7。可以证明没有其他 y 能得到更大的集合。实际上选择 y 很重要,如果你取 y=22,则 S(7,22,3)={16,17,30,31},其大小仅为 4,并不最优。
在第六个样例中,经过无数次计算,我们终于推算出最优的 y 是 278302368699121665,最终的答案是 398158383604301822。证明过程留作读者的一个简单练习。