CF1746C.Permutation Operations
普及-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given a permutation a of size n and you should perform n operations on it. In the i-th operation, you can choose a non-empty suffix of a and increase all of its elements by i. How can we perform the operations to minimize the number of inversions in the final array?
Note that you can perform operations on the same suffix any number of times you want.
A permutation of size n is an array of size n such that each integer from 1 to n occurs exactly once in this array. A suffix is several consecutive elements of an array that include the last element of the array. An inversion in an array a is a pair of indices (i,j) such that i>j and ai<aj.
给你一个长度为 n 的排列 a,你需要对其执行 n 次操作。在第 i 次操作中,你可以选择 a 的一个非空后缀,并将该后缀中所有元素增加 i。如何执行这些操作,使得最终数组中的逆序对数量最少?
注意:你可以任意多次对同一后缀执行操作。
长度为 n 的排列是指一个长度为 n 的数组,其中恰好包含从 1 到 n 的每个整数各一次。后缀是指包含数组最后一个元素的若干连续元素组成的子数组。数组 a 中的一个逆序对是指一对下标 (i,j),满足 i>j 且 ai<aj。
输入格式
Each test contains multiple test cases. The first line contains the number of test cases t (1≤t≤104). The description of the test cases follows.
The first line of each test case contains a single integer n (1≤n≤105) — the size of the array.
The second line contains n distinct integers a1,a2,…,an (1≤ai≤n), the initial permutation a.
It's guaranteed that the sum of n over all test cases does not exceed 2⋅105.
每个测试包含多个测试用例。第一行包含测试用例的数量 t(1≤t≤104)。随后是各测试用例的描述。
每个测试用例的第一行包含一个整数 n(1≤n≤105)—— 数组的大小。
第二行包含 n 个互不相同的整数 a1,a2,…,an(1≤ai≤n),即初始排列 a。
保证所有测试用例的 n 之和不超过 2⋅105。
输出格式
For each test case, print n integers x1,x2,…,xn (1≤xi≤n for each 1≤i≤n) indicating that the i-th operation must be applied to the suffix starting at index xi. If there are multiple answers, print any of them.
对于每个测试用例,输出 n 个整数 x1,x2,…,xn(对每个 1≤i≤n,满足 1≤xi≤n),表示第 i 个操作必须应用于从索引 xi 开始的后缀。若存在多个答案,输出任意一个即可。
输入输出样例
输入#1
4 4 1 2 3 4 5 1 3 2 4 5 3 2 3 1 1 1
输出#1
1 1 1 1 1 4 3 2 1 1 3 3 1
说明/提示
In the first test case one of the optimal solutions is to increase the whole array on each operation (that is, choose the suffix starting at index 1). The final array [11,12,13,14] contains 0 inversions.
In the second test case, a will be equal to [2,4,3,5,6], [2,4,3,7,8], [2,4,6,10,11], [2,8,10,14,15] and [7,13,15,19,20] after the first, second, third, fourth, and fifth operations, respectively. So the final array a has zero inversions.
在第一个测试用例中,一种最优解是在每次操作中对整个数组进行增加(即选择从下标 1 开始的后缀)。最终数组 [11,12,13,14] 包含 0 个逆序对。
在第二个测试用例中,经过第一次、第二次、第三次、第四次和第五次操作后,数组 a 将分别变为 [2,4,3,5,6]、[2,4,3,7,8]、[2,4,6,10,11]、[2,8,10,14,15] 和 [7,13,15,19,20]。因此,最终数组 a 的逆序对数量为 0。
输入解题思路,AI测评打分。不知道怎么写?