CF2131E Adjacent XOR
题目描述
你有一个长度为 $n$ 的数组 $a$,对于每个满足 $1 \le i < n$ 的索引 $i$,你只能执行以下操作**最多一次**:
- 令 $a_i := a_i \oplus a_{i+1}$,其中 $\oplus$ 表示按位异或运算。
你可以按任意顺序选择这些索引并执行操作。
给出另一个数组 $b$,判断 $a$ 能否通过这些操作转换为 $b$。
输入格式
输入数据包含多组测试用例,第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试用例的组数。对于每个测试用例:
- 第一行包含一个整数 $n$($1 \le n \le 2 \cdot 10^5$)。
- 第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$($0 \le a_i < 2^{30}$)。
- 第三行包含 $n$ 个整数 $b_1, b_2, \dots, b_n$($0 \le b_i < 2^{30}$)。
输入数据保证所有测试用例的 $n$ 之和不超过 $2 \cdot 10^5$
输出格式
对于每个测试用例,如果 $a$ 可以转换为 $b$,输出 `YES`,否则输出 `NO`。你可以用任意大小写字母输出答案。例如,`yEs`、`yes`、`Yes` 和 `YES` 都会被视为肯定回答。
说明/提示
对于第一个测试用例,我们可以按如下顺序执行操作:
- 选择索引 $i=3$,然后赋值 $a_3 := a_3 \oplus a_4 = 7$,数组变为 $[1,2,7,4,5]$。
- 选择索引 $i=4$,然后赋值 $a_4 := a_4 \oplus a_5 = 1$,数组变为 $[1,2,7,1,5]$。
- 选择索引 $i=1$,然后赋值 $a_1 := a_1 \oplus a_2 = 3$,数组变为 $[3,2,7,1,5]$。