#P14457. [ICPC 2025 Xi'an R] Killing Bits

[ICPC 2025 Xi'an R] Killing Bits

Description

给定两个长度相同的数组 aabb,它们都由 nn 个非负整数组成。你可以对数组 aa 执行任意次数(可能为零次)以下操作:

  • 首先,选择一个 0,1,,n10, 1, \ldots, n - 1 的排列 pp
  • 然后,对于每个 1in1 \le i \le n,执行赋值操作 aiai&pia_i \gets a_i \operatorname{\&} p_i,其中 &\& 表示按位与运算(bitwise AND)。

你需要判断,是否有可能通过若干次(可能为零次)这样的操作,将数组 aa 转换为数组 bb

Input Format

输入包含多个测试用例。
第一行包含一个整数 tt1t1041 \leq t \leq 10^4),表示测试用例的数量。
对于每个测试用例:

  • 第一行包含一个整数 nn1n51041 \le n \le 5 \cdot 10^4),表示数组 aabb 的长度;
  • 第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \ldots, a_n0ain10 \le a_i \le n - 1),表示数组 aa 的元素;
  • 第三行包含 nn 个整数 b1,b2,,bnb_1, b_2, \ldots, b_n0bin10 \le b_i \le n - 1),表示数组 bb 的元素。

保证所有测试用例中 nn 的总和不超过 51045 \cdot 10^4

Output Format

对于每个测试用例,输出一行结果:

  • 如果可以将 aa 转换为 bb,输出 Yes
  • 否则输出 No

输出时大小写不敏感。例如,yEsyesYesYES 都会被视为正确回答。

4
3
0 1 2
2 1 0
5
1 0 1 3 4
0 0 1 1 4
8
1 2 3 4 5 6 7 7
1 2 3 4 5 6 7 7
8
7 7 7 7 7 7 7 7
1 2 3 4 5 6 7 7
No
Yes
Yes
No

Hint

在第一个测试用例中,我们至少需要执行一次操作才能将 aa 转换为 bb
注意到由于 a1=0a_1 = 0,所以无论选择怎样的排列 pp,都有 a1&p1=0a_1 \operatorname{\&} p_1 = 0
然而,b1>0b_1 > 0,因此无论怎样选择排列,a1a_1 都不可能变为 b1b_1。因此答案是 No

在第二个测试用例中,可以选择排列 p=[2,0,3,1,4]p = [2, 0, 3, 1, 4]。执行操作后,aa 被转换为 bb

在第三个测试用例中,aabb 相等,因此无需执行任何操作。

翻译由 ChatGPT-5 完成