AT_arc208_c [ARC208C] Mod of XOR
题目描述
给定正整数 $C$ 和 $X$,且 $C, X < 2^{30}$。
请判断是否存在一个正整数 $n$,满足以下所有条件,如果存在,请给出一个这样的 $n$。
- $1 \leq n < 2^{60}$
- $(n \oplus C) \bmod n = X$
这里 $n \oplus C$ 表示 $n$ 和 $C$ 的按位异或操作。
有 $T$ 组测试数据,需要分别解决。
什么是按位异或?非负整数 $X$ 和 $Y$ 的按位异或 $X \oplus Y$ 定义如下:
- $X \oplus Y$ 用二进制表示时,当且仅当 $X$ 和 $Y$ 在对应的 $2^k$ 位($k\geq 0$)有一位为 $1$ 时,该位为 $1$,否则为 $0$。
例如,$3 \oplus 5 = 6$(二进制:$011 \oplus 101 = 110$)。
输入格式
输入通过标准输入给出,格式如下:
> $T$
> $\text{case}_1$
> $\text{case}_2$
> $\vdots$
> $\text{case}_T$
每组测试数据格式为:
> $C$ $X$
输出格式
对于每组测试数据,如果不存在满足条件的 $n$,输出 $-1$。
否则,输出满足条件的 $n$。
如果有多个满足条件的 $n$,输出其中任意一个均可。
多组测试结果按顺序换行输出。
说明/提示
### 样例解释 1
考虑第一组测试数据。
$n=7$ 满足所有条件,因为 $(n\oplus C) \bmod n = (7 \oplus 10) \bmod 7 = 13 \bmod 7 = 6 = X$。因此,首行输出 $7$ 是可接受的。
除此之外,输出 $n=12, 18, 19$ 等等也都是可接受的。
### 数据范围
- $1\leq T\leq 2\times 10^5$
- $1\leq C, X < 2^{30}$
- 所有输入均为整数。
由 ChatGPT 5 翻译