CF2199D Two Arrays
题目描述
一个序列 $[s_1, s_2, \dots, s_k]$ 的中位数定义为:将序列按非递减顺序排序后,处于第 $\lfloor \frac{k+1}{2} \rfloor$ 个位置的元素。例如,序列 $[4, 5, 6, 1, 2, 2]$ 的中位数是 $2$;序列 $[3, 6, 3, 4, 5]$ 的中位数是 $4$。
现给定两个按非递减顺序排列的数组 $[a_1, a_2, \dots, a_n]$ 和 $[b_1, b_2, \dots, b_m]$,它们的长度都是奇数。
每次操作,你可以进行以下步骤之一:
- 任选一个数组,并在数组中标记奇数个元素;
- 计算 $x$——这些被标记元素的中位数;
- 移除所有被标记的元素;
- 将 $x$ 插入到操作的数组中的任意一个位置。
你的任务是判断,是否有可能通过若干次上述操作,使两个数组完全相同。
输入格式
第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试用例的数量。
每个测试用例包含三行:
- 第一行包含两个整数 $n$ 和 $m$($1 \le n, m \le 3 \cdot 10^5$);
- 第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$($1 \le a_1 \le a_2 \le \dots \le a_n \le 10^9$);
- 第三行包含 $m$ 个整数 $b_1, b_2, \dots, b_m$($1 \le b_1 \le b_2 \le \dots \le b_m \le 10^9$)。
输入的额外约束:
- 所有测试用例的 $(n+m)$ 总和不超过 $3 \cdot 10^5$;
- 在每个测试用例中,$n \bmod 2 = 1$ 且 $m \bmod 2 = 1$。
输出格式
对于每个测试用例,如果可以通过操作使两数组完全相同,输出 YES,否则输出 NO。
说明/提示
在第一个样例中,可以通过如下操作使两数组相同:
1. 对数组 $a = [1, 2, 3, 4, 5]$,标记第 $2$、$4$、$5$ 个元素(即 $2, 4, 5$)。它们的中位数为 $4$。将其插入数组末尾,得到 $a = [1, 3, 4]$;
2. 对数组 $b = [1, 3, 7]$,标记所有元素。它们的中位数为 $3$。此时 $b = [3]$;
3. 对数组 $a = [1, 3, 4]$,标记所有元素。它们的中位数为 $3$。此时 $a = [3]$;
4. 现在 $a$ 和 $b$ 已经相同。
由 ChatGPT 5 翻译