CF2199D.Two Arrays

普及+/提高

通过率:0%

AC君温馨提醒

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

题目描述

一个序列 [s1,s2,…,sk][s_1, s_2, \dots, s_k] 的中位数定义为:将序列按非递减顺序排序后,处于第 ⌊k+12⌋\lfloor \frac{k+1}{2} \rfloor 个位置的元素。例如,序列 [4,5,6,1,2,2][4, 5, 6, 1, 2, 2] 的中位数是 22;序列 [3,6,3,4,5][3, 6, 3, 4, 5] 的中位数是 44。

现给定两个按非递减顺序排列的数组 [a1,a2,…,an][a_1, a_2, \dots, a_n] 和 [b1,b2,…,bm][b_1, b_2, \dots, b_m],它们的长度都是奇数。

每次操作,你可以进行以下步骤之一:

  • 任选一个数组,并在数组中标记奇数个元素;
  • 计算 xx——这些被标记元素的中位数;
  • 移除所有被标记的元素;
  • 将 xx 插入到操作的数组中的任意一个位置。

你的任务是判断,是否有可能通过若干次上述操作,使两个数组完全相同。

输入格式

第一行包含一个整数 tt(1≤t≤1041 \le t \le 10^4),表示测试用例的数量。

每个测试用例包含三行:

  • 第一行包含两个整数 nn 和 mm(1≤n,m≤3⋅1051 \le n, m \le 3 \cdot 10^5);
  • 第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \dots, a_n(1≤a1≤a2≤⋯≤an≤1091 \le a_1 \le a_2 \le \dots \le a_n \le 10^9);
  • 第三行包含 mm 个整数 b1,b2,…,bmb_1, b_2, \dots, b_m(1≤b1≤b2≤⋯≤bm≤1091 \le b_1 \le b_2 \le \dots \le b_m \le 10^9)。

输入的额外约束:

  • 所有测试用例的 (n+m)(n+m) 总和不超过 3⋅1053 \cdot 10^5;
  • 在每个测试用例中,n mod 2=1n \bmod 2 = 1 且 m mod 2=1m \bmod 2 = 1。

输出格式

对于每个测试用例,如果可以通过操作使两数组完全相同,输出 YES,否则输出 NO。

输入输出样例

  • 输入#1

    3
    5 3
    1 2 3 4 5
    1 3 7
    3 5
    11 17 19
    19 20 26 29 37
    1 7
    11
    1 2 7 9 11 15 17

    输出#1

    YES
    NO
    YES

说明/提示

在第一个样例中,可以通过如下操作使两数组相同:

  1. 对数组 a=[1,2,3,4,5]a = [1, 2, 3, 4, 5],标记第 22、44、55 个元素(即 2,4,52, 4, 5)。它们的中位数为 44。将其插入数组末尾,得到 a=[1,3,4]a = [1, 3, 4];
  2. 对数组 b=[1,3,7]b = [1, 3, 7],标记所有元素。它们的中位数为 33。此时 b=[3]b = [3];
  3. 对数组 a=[1,3,4]a = [1, 3, 4],标记所有元素。它们的中位数为 33。此时 a=[3]a = [3];
  4. 现在 aa 和 bb 已经相同。

由 ChatGPT 5 翻译

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

首页