CF2199D.Two Arrays
普及+/提高
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
一个序列 [s1,s2,…,sk] 的中位数定义为:将序列按非递减顺序排序后,处于第 ⌊2k+1⌋ 个位置的元素。例如,序列 [4,5,6,1,2,2] 的中位数是 2;序列 [3,6,3,4,5] 的中位数是 4。
现给定两个按非递减顺序排列的数组 [a1,a2,…,an] 和 [b1,b2,…,bm],它们的长度都是奇数。
每次操作,你可以进行以下步骤之一:
- 任选一个数组,并在数组中标记奇数个元素;
- 计算 x——这些被标记元素的中位数;
- 移除所有被标记的元素;
- 将 x 插入到操作的数组中的任意一个位置。
你的任务是判断,是否有可能通过若干次上述操作,使两个数组完全相同。
输入格式
第一行包含一个整数 t(1≤t≤104),表示测试用例的数量。
每个测试用例包含三行:
- 第一行包含两个整数 n 和 m(1≤n,m≤3⋅105);
- 第二行包含 n 个整数 a1,a2,…,an(1≤a1≤a2≤⋯≤an≤109);
- 第三行包含 m 个整数 b1,b2,…,bm(1≤b1≤b2≤⋯≤bm≤109)。
输入的额外约束:
- 所有测试用例的 (n+m) 总和不超过 3⋅105;
- 在每个测试用例中,nmod2=1 且 mmod2=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
说明/提示
在第一个样例中,可以通过如下操作使两数组相同:
- 对数组 a=[1,2,3,4,5],标记第 2、4、5 个元素(即 2,4,5)。它们的中位数为 4。将其插入数组末尾,得到 a=[1,3,4];
- 对数组 b=[1,3,7],标记所有元素。它们的中位数为 3。此时 b=[3];
- 对数组 a=[1,3,4],标记所有元素。它们的中位数为 3。此时 a=[3];
- 现在 a 和 b 已经相同。
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?