#P15854. [Roi2025 Team]System of Equations with XOR / 异或方程组

[Roi2025 Team]System of Equations with XOR / 异或方程组

时间限制: 1 秒
内存限制: 512 MB

Alice 和 Bob 喜欢有关随机数的问题。他们设计了如下问题:

  • Alice 从 1123112^{31}-1 中等概率随机选择一个整数 xx
  • Bob 从 1123112^{31}-1 中等概率随机选择一个整数 yy
  • 他们计算乘积 a=xya=x\cdot y 和按位异或 b=xyb=x\oplus y

现在给定得到的两个整数 a,ba,b。请找出任意一对自然数 x,yx,y,使得:

xy=a,xy=a,

xy=b.x\oplus y=b.

其中 \oplus 表示按位异或。

回顾:两个非负整数的按位异或,是将二者写成二进制后,对每一位,如果两个数中恰好一个数在该位为 11,则结果该位为 11。例如:

147=(1110201112)=10012=914\oplus 7=(1110_2\oplus 0111_2)=1001_2=9

在 C++、Java、Python 中,异或运算符写作 ^;Pascal 中写作 xor

输入格式

第一行包含一个整数 tt,表示测试数据组数:

1t2000001\le t\le 200000

接下来 tt 行,每行包含两个整数 a,ba,b

1a<262,0b<2311\le a<2^{62},\qquad 0\le b<2^{31}

输出格式

对每组测试数据,输出一行两个自然数 x,yx,y,满足:

xy=a,xy=bxy=a,\qquad x\oplus y=b

如果有多组合法答案,输出任意一组。

样例

2
21 4
9 0
7 3
3 3

说明

本题共有 100 个测试,包括题面样例。除题面样例外,所有测试均保证 t=200000t=200000,并且每组数据中的 a,ba,b 都是按题面所述由随机选择的 x,yx,y 生成的。

难度评估

方程同时包含乘法和异或,不能简单用普通代数求解。需要利用 x,y<231x,y<2^{31}、随机生成数据以及位运算结构,设计高效恢复算法。可能的思路包括按位带进位搜索、结合乘积约束剪枝,或利用随机数据的可分解性质。由于 tt 很大,实现必须非常高效。

建议难度:省选−/省选,CF 约 2400。