CF2254F Whiplash
题目描述
Yousef 给了你一个偶数 $n$ 和两个长度为 $n$ 的数组 $a$ 和 $b$,其中每个元素都是非负整数。
你可以对数组 $a$ 进行如下操作任意多次(也可以不进行操作):
- 选择一个下标 $i$($1 \le i \le n$)。
- 对所有满足 $1 \le j \le n$ 且 $j \neq i$ 的 $j$,将 $a_j$ 替换为 $a_j \oplus a_i$。(其中 $\oplus$ 表示[按位异或操作](https://en.wikipedia.org/wiki/Bitwise_operation#XOR))。
- $a_i$ 的值保持不变。
请判断是否存在有限次操作,将数组 $a$ 变换为数组 $b$。
输入格式
第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试用例的组数。每组测试用例的描述如下。
每组测试用例的第一行包含一个偶数 $n$($2 \le n \le 2 \cdot 10^5$),表示数组的长度。
第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$($0 \le a_i < 2^{30}$),表示数组 $a$ 的元素。
第三行包含 $n$ 个整数 $b_1, b_2, \dots, b_n$($0 \le b_i < 2^{30}$),表示数组 $b$ 的元素。
保证所有测试用例中 $n$ 的和不超过 $2 \cdot 10^5$。
输出格式
对于每组测试用例,如果可以通过有限次操作将数组 $a$ 变换为数组 $b$,输出 "YES";否则输出 "NO"。
输出时不区分大小写,例如 "yEs"、"yes"、"Yes"、"YES" 都被认为是正确答案。
说明/提示
在第一个测试用例中,从 $[1, 2]$ 开始,没有任何操作序列能够得到 $[1, 0]$,所以答案是 “NO”。
在第二个测试用例中,一种可行的操作序列如下:
- 选择下标 $2$,$[1, {\color{blue}{2}}, 4, 7] \rightarrow [3, {\color{blue}{2}}, 6, 5]$。
- 选择下标 $3$,$[3, 2, {\color{blue}{6}}, 5] \rightarrow [5, 4, {\color{blue}{6}}, 3]$。
- 选择下标 $4$,$[5, 4, 6, {\color{blue}{3}}] \rightarrow [6, 7, 5, {\color{blue}{3}}]$。
在第三个测试用例中,一种可行的操作序列如下:
- 选择下标 $1$,$[{\color{blue}{1}}, 2, 4, 8] \rightarrow [{\color{blue}{1}}, 3, 5, 9]$。
- 选择下标 $2$,$[1, {\color{blue}{3}}, 5, 9] \rightarrow [2, {\color{blue}{3}}, 6, 10]$。
- 选择下标 $3$,$[2, 3, {\color{blue}{6}}, 10] \rightarrow [4, 5, {\color{blue}{6}}, 12]$。
- 选择下标 $2$,$[4, {\color{blue}{5}}, 6, 12] \rightarrow [1, {\color{blue}{5}}, 3, 9]$。
- 选择下标 $4$,$[1, 5, 3, {\color{blue}{9}}] \rightarrow [8, 12, 10, {\color{blue}{9}}]$。
- 选择下标 $1$,$[{\color{blue}{8}}, 12, 10, 9] \rightarrow [{\color{blue}{8}}, 4, 2, 1]$。
由 ChatGPT 5 翻译