CF1601C.Optimal Insertion

提高+/省选-

通过率:0%

时间限制:3.00s

内存限制:512MB

AC君温馨提醒

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

题目描述

You are given two arrays of integers a1,a2,…,ana_1, a_2, \ldots, a_n and b1,b2,…,bmb_1, b_2, \ldots, b_m.

You need to insert all elements of bb into aa in an arbitrary way. As a result you will get an array c1,c2,…,cn+mc_1, c_2, \ldots, c_{n+m} of size n+mn + m.

Note that you are not allowed to change the order of elements in aa, while you can insert elements of bb at arbitrary positions. They can be inserted at the beginning, between any elements of aa, or at the end. Moreover, elements of bb can appear in the resulting array in any order.

What is the minimum possible number of inversions in the resulting array cc? Recall that an inversion is a pair of indices (i,j)(i, j) such that i<ji \lt j and ci>cjc_i \gt c_j.

给你两个整数数组 a1,a2,…,ana_1, a_2, \ldots, a_n 和 b1,b2,…,bmb_1, b_2, \ldots, b_m。

你需要以任意方式将数组 bb 的所有元素插入到数组 aa 中。最终得到一个大小为 n+mn + m 的数组 c1,c2,…,cn+mc_1, c_2, \ldots, c_{n+m}。

注意:你不允许改变数组 aa 中元素的相对顺序,但可以将 bb 的元素插入到任意位置(包括开头、aa 中任意两个元素之间,或末尾)。此外,bb 中的元素在最终数组 cc 中可以以任意顺序出现。

在所有可能的插入方案中,最终数组 cc 所含逆序对的最小数量是多少?
回忆一下,一个逆序对是指满足 i<ji \lt j 且 ci>cjc_i \gt c_j 的下标对 (i,j)(i, j)。

输入格式

Each test contains multiple test cases. The first line contains the number of test cases tt (1≤t≤1041 \leq t \leq 10^4). Description of the test cases follows.

The first line of each test case contains two integers nn and mm (1≤n,m≤1061 \leq n, m \leq 10^6).

The second line of each test case contains nn integers a1,a2,…,ana_1, a_2, \ldots, a_n (1≤ai≤1091 \leq a_i \leq 10^9).

The third line of each test case contains mm integers b1,b2,…,bmb_1, b_2, \ldots, b_m (1≤bi≤1091 \leq b_i \leq 10^9).

It is guaranteed that the sum of nn for all tests cases in one input doesn't exceed 10610^6. The sum of mm for all tests cases doesn't exceed 10610^6 as well.

每个测试包含多个测试用例。第一行包含测试用例的数量 tt(1≤t≤1041 \leq t \leq 10^4)。随后是各测试用例的描述。

每个测试用例的第一行包含两个整数 nn 和 mm(1≤n,m≤1061 \leq n, m \leq 10^6)。

每个测试用例的第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \ldots, a_n(1≤ai≤1091 \leq a_i \leq 10^9)。

每个测试用例的第三行包含 mm 个整数 b1,b2,…,bmb_1, b_2, \ldots, b_m(1≤bi≤1091 \leq b_i \leq 10^9)。

保证所有测试用例中 nn 的总和不超过 10610^6;所有测试用例中 mm 的总和也不超过 10610^6。

输出格式

For each test case, print one integer — the minimum possible number of inversions in the resulting array cc.

对于每个测试用例,输出一个整数——结果数组 cc 中可能的最少逆序对数量。

输入输出样例

  • 输入#1

    3
    3 4
    1 2 3
    4 3 2 1
    3 3
    3 2 1
    1 2 3
    5 4
    1 3 5 3 1
    4 3 6 1

    输出#1

    0
    4
    6

说明/提示

Below is given the solution to get the optimal answer for each of the example test cases (elements of aa are underscored).

  • In the first test case, c=[1‾,1,2‾,2,3‾,3,4]c = [\underline{1}, 1, \underline{2}, 2, \underline{3}, 3, 4].
  • In the second test case, c=[1,2,3‾,2‾,1‾,3]c = [1, 2, \underline{3}, \underline{2}, \underline{1}, 3].
  • In the third test case, c=[1‾,1,3,3‾,5‾,3‾,1‾,4,6]c = [\underline{1}, 1, 3, \underline{3}, \underline{5}, \underline{3}, \underline{1}, 4, 6].

以下是每个示例测试用例的最优解(数组 aa 中的元素以下划线标出):

  • 第一个测试用例中,c=[1‾,1,2‾,2,3‾,3,4]c = [\underline{1}, 1, \underline{2}, 2, \underline{3}, 3, 4]。
  • 第二个测试用例中,c=[1,2,3‾,2‾,1‾,3]c = [1, 2, \underline{3}, \underline{2}, \underline{1}, 3]。
  • 第三个测试用例中,c=[1‾,1,3,3‾,5‾,3‾,1‾,4,6]c = [\underline{1}, 1, 3, \underline{3}, \underline{5}, \underline{3}, \underline{1}, 4, 6]。

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

首页