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

    ID: 16366 远端评测题 4000ms 512MiB 尝试: 0 已通过: 0 显示难度省选/NOI− 上传者: 标签>2025网络流Special JudgeICPC西安

[ICPC 2025 Xi'an R] Killing Bits

题目描述

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

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

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

输入格式

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

  • 第一行包含一个整数 nn(1≤n≤5⋅1041 \le n \le 5 \cdot 10^4),表示数组 aa 和 bb 的长度;
  • 第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \ldots, a_n(0≤ai≤n−10 \le a_i \le n - 1),表示数组 aa 的元素;
  • 第三行包含 nn 个整数 b1,b2,…,bnb_1, b_2, \ldots, b_n(0≤bi≤n−10 \le b_i \le n - 1),表示数组 bb 的元素。

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

输出格式

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

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

输出时大小写不敏感。例如,yEs、yes、Yes 和 YES 都会被视为正确回答。

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

提示

在第一个测试用例中,我们至少需要执行一次操作才能将 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。

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

翻译由 ChatGPT-5 完成