AT_arc208_c.[ARC208C] Mod of XOR

提高+/省选-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给定正整数 CC 和 XX,且 C,X<230C, X < 2^{30}。

请判断是否存在一个正整数 nn,满足以下所有条件,如果存在,请给出一个这样的 nn。

  • 1≤n<2601 \leq n < 2^{60}
  • (n⊕C) mod n=X(n \oplus C) \bmod n = X

这里 n⊕Cn \oplus C 表示 nn 和 CC 的按位异或操作。

有 TT 组测试数据,需要分别解决。

什么是按位异或?非负整数 XX 和 YY 的按位异或 X⊕YX \oplus Y 定义如下:

  • X⊕YX \oplus Y 用二进制表示时,当且仅当 XX 和 YY 在对应的 2k2^k 位(k≥0k\geq 0)有一位为 11 时,该位为 11,否则为 00。

例如,3⊕5=63 \oplus 5 = 6(二进制:011⊕101=110011 \oplus 101 = 110)。

输入格式

输入通过标准输入给出,格式如下:

TT
case1\text{case}_1
case2\text{case}_2
⋮\vdots
caseT\text{case}_T

每组测试数据格式为:

CC XX

输出格式

对于每组测试数据,如果不存在满足条件的 nn,输出 −1-1。

否则,输出满足条件的 nn。

如果有多个满足条件的 nn,输出其中任意一个均可。

多组测试结果按顺序换行输出。

输入输出样例

  • 输入#1

    3
    10 6
    2 3
    777 153

    输出#1

    7
    -1
    208

说明/提示

样例解释 1

考虑第一组测试数据。

n=7n=7 满足所有条件,因为 (n⊕C) mod n=(7⊕10) mod 7=13 mod 7=6=X(n\oplus C) \bmod n = (7 \oplus 10) \bmod 7 = 13 \bmod 7 = 6 = X。因此,首行输出 77 是可接受的。

除此之外,输出 n=12,18,19n=12, 18, 19 等等也都是可接受的。

数据范围

  • 1≤T≤2×1051\leq T\leq 2\times 10^5
  • 1≤C,X<2301\leq C, X < 2^{30}
  • 所有输入均为整数。

由 ChatGPT 5 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页