CF2060G.Bugged Sort

提高+/省选-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

今天,Alice 再次让 Bob 对数组进行升序排序!至此,没人知道她究竟重复这个行为多少次了。

Bob 被给定两个长度均为 $ n $ 的序列 $ a $ 和 $ b $。所有 $ 1 $ 到 $ 2n $ 的整数在 $ a $ 或 $ b $ 中恰好出现一次。换句话说,拼接后的序列 $ a + b $ 是长度为 $ 2n $ 的排列$ ^{\text{†}} $。

Bob 必须使用 Alice 的交换函数同时将两个序列按升序排序。Alice 的交换函数实现如下:

  • 给定两个索引 $ i $ 和 $ j (( i \neq j $),交换 $ a_i $ 与 $ b_j $,并交换 $ b_i $ 与 $ a_j $。

给定序列 $ a $ 和 $ b $,请判断在使用任意次 Alice 的交换函数后,能否同时将两个序列按升序排序。

$ ^{\text{∗}} $ 拼接序列 $ a + b $ 表示序列 $ [a_1, a_2, a_3, \ldots , b_1, b_2, b_3, \ldots] $。

$ ^{\text{†}} $ 长度为 $ m $ 的排列包含 $ 1 $ 到 $ m $ 的所有整数且各出现一次。

输入格式

每个测试包含多个测试用例。第一行包含测试用例数量 $ t (( 1 \le t \le 10^4 $)。接下来是测试用例描述。

每个测试用例的第一行包含一个整数 $ n (( 3 \le n \le 2 \cdot 10^5 $)。

每个测试用例的第二行包含 $ a_1, a_2, \ldots, a_n (( 1 \le a_i \le 2n $)。

每个测试用例的第三行包含 $ b_1, b_2, \ldots, b_n (( 1 \le b_i \le 2n $)。

保证所有 $ [1, 2n] $ 范围内的整数在 $ a $ 或 $ b $ 中恰好出现一次。

保证所有测试用例的 $ n $ 之和不超过 $ 2 \cdot 10^5 $。

输出格式

若可以同时将两个序列排序,在新的一行输出 "YES"。否则输出 "NO"。

输出不区分大小写,例如 "yEs"、"yes" 和 "Yes" 均会被识别为肯定答案。

输入输出样例

  • 输入#1

    5
    3
    2 1 3
    4 6 5
    3
    2 1 5
    4 3 6
    4
    1 6 4 3
    5 2 8 7
    4
    5 3 7 1
    8 6 4 2
    7
    5 1 9 12 3 13 7
    2 4 11 14 6 10 8

    输出#1

    NO
    YES
    NO
    YES
    YES

说明/提示

第一个测试用例中,可以证明无法完成排序。

第二个测试用例中,Bob 可以对索引 $ i=1 $ 和 $ j=2 $ 执行一次操作。数组分别变为 $ [3,4,5] $ 和 $ [1,2,6] $,此时两个数组均已排序。

翻译由 DeepSeek R1 完成

输入解题思路,AI测评打分。不知道怎么写?

首页