#AT1486. F - Xor Shift
F - Xor Shift
F - 异或变换
得到两个长度为N的非负整数序列a={a_0,...,a_{N-1}}和b={b_0,...,b_{N-1}}。
Snuke将选择一个整数k满足0≤k<N以及大于等于0的整数x,以如下方式构建长度为N的新的序列a'={a_0',...,a_{N-1}'}:
- $a_i'= a_{i+k \mod N}\ XOR \ x$
找到所有满足a'=b的(k,x)对。
什么是XOR运算?
整数A和B的XOR运算A XOR B定义如下:
- 当A XOR B用二进制表示时,二进制数的第k位(k≥0)是1当且仅当A或B中只有一个有1位的二进制数在第k位,否则为0。
约束
- $1 \leq N \leq 2 \times 10^5$
- $0 \leq a_i,b_i < 2^{30}$
- 输入的所有值都是整数。
输入
从标准输入中按以下格式给出输入:
输出
以升序(按照k的升序,对于相同的k按照x的升序)的方式,每行输出一个满足条件的(k, x)对。
如果没有满足条件的(k, x)对,则输出为空。
3
0 2 1
1 2 3
1 3
如果$(k,x)=(1,3)$,
-
$a_0'=(a_1\ XOR \ 3)=1$
-
$a_1'=(a_2\ XOR \ 3)=2$
-
$a_2'=(a_0\ XOR \ 3)=3$
我们有$a' = b$。
5
0 0 0 0 0
2 2 2 2 2
0 2
1 2
2 2
3 2
4 2
6
0 1 3 7 6 4
1 5 4 6 2 3
2 2
5 5
2
1 2
0 0
没有满足条件的(k,x)对。
相关
在下列比赛中: