CFCF2162C.Beautiful XOR
普及-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定两个整数 a 和 b,你可以进行如下操作任意次数(包括零次):
- 选择任意整数 x,满足 0≤x≤a(其中 a 为当前值,而非初始值),
- 将 a 更新为 $ a \oplus x。这里,\oplus$ 表示按位异或运算符。
通过一系列操作后,你希望将 a 的值变为恰好 b。
请找到至多 100 次操作(即所使用的 x 值序列),将 a 变为 b,或者报告无解。
注意,你不需要找到最少操作次数的方案,只需给出任意一组满足要求且操作不超过 100 次的方案。
输入格式
输入的第一行为一个整数 t(1≤t≤1000),表示测试用例数量。
每组测试数据包含两个整数 a 和 b(1≤a,b≤109)。
输出格式
对于每组测试数据,如果无法通过允许的操作将 a 变为 b,则输出一行 −1。
否则,第一行输出一个整数 k(0≤k≤100),表示需要的操作次数。第二行输出 k 个整数 x1,x2,…,xk,依次为每次操作选取的 x。
如果存在多种可行序列,你可以输出任意一种。
输入输出样例
输入#1
6 9 6 13 13 292 929 405 400 998 244 244 353
输出#1
2 7 8 0 -1 1 5 2 25 779 -1
说明/提示
对于第一个测试用例:
- 选择 x=7,此时 a 变为 9⊕7=14。
- 选择 x=8,此时 a 变为 14⊕8=6。
因此,我们可以使 a=b。对于第四个测试用例,选择 x=5 可使 a=b。