编程题
### 问题描述 小然在一次冒险中,发现了一个神秘的古老遗迹。在遗迹的最深处,小然发现了一些神秘的二进制符文,他猜测这些符文可能是开启遗迹秘门的关键。 这些神秘的符文有两套,每套符文都是由 $0$ 和 $1$ 组成的二进制数组。一套是 $A$,另一套是 $B$,每套都有 $N$ 个元素($N ≥ 3$)。 神秘的是,符文 $A$ 有一个特殊的变形规则:可以选择 $A$ 中的三个位置 $i$、$j$ 和 $k$(满足 $1 ≤ i < j < k ≤ N$),并将位置 $j$ 的符文改为$A_i \mid A_j \mid A_k$ 的结果。 小然需要判断,通过任意次(可能为零次)的这种变形操作,是否可以将符文 $A$ 变为符文 $B$? ### 输入格式 第一行包含一个整数 $T$,代表有 $T$ 组测试数据。 每组测试数据包含三行: - 第一行是一个整数 $N$,代表符文的元素数量。 - 第二行是 $N$ 个空格分隔的整数,代表符文 $A$ 的元素。 - 第三行是 $N$ 个空格分隔的整数,代表符文 $B$ 的元素。 ### 输出格式 对于每组测试数据,如果可以通过变形操作将符文 $A$ 变为符文 $B$,输出 `YES`;否则,输出 `NO`。 ### 样例输入 ```text 3 5 0 1 0 0 1 0 1 1 1 1 3 1 0 0 0 0 1 3 0 0 0 0 1 0 ``` ### 样例输出 ```text YES NO NO ``` ### 说明 在第一组测试数据中,我们可以通过以下操作将 $A$ 变为 $B$: 1. 选择 $i=2$、$j=3$、$k=4$,将 $A[3]$ 设置为 $A[2] \mid A[4]$,得到新的 $A=[0,1,1,0,1]$。 2. 选择 $i=3$、$j=4$、$k=5$,将 $A[4]$ 设置为 $A[3] \mid A[5]$,得到新的 $A=[0,1,1,1,1]$。 在第二组和第三组测试数据中,无法通过变形操作将 $A$ 变为 $B$。 ### 评测数据范围 $1 \leq T \leq 10^3$。 $3 \leq N \leq 10^5$。 $A[i]$ 和 $B[i]$ 都是 $0$ 或 $1$。 所有测试数据中 $N$ 的总和不超过 $5 \times 10^5$。
查看答案
赣ICP备20007335号-2