CF1672F1.Array Shuffling
普及+/提高
通过率:0%
时间限制:1.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
oolimry has an array a of length n which he really likes. Today, you have changed his array to b, a permutation of a, to make him sad.
Because oolimry is only a duck, he can only perform the following operation to restore his array:
- Choose two integers i,j such that 1≤i,j≤n.
- Swap bi and bj.
The sadness of the array b is the minimum number of operations needed to transform b into a.
Given the array a, find any array b which is a permutation of a that has the maximum sadness over all permutations of the array a.
oolimry 有一个长度为 n 的数组 a,他非常喜欢这个数组。今天,你将他的数组改为了 b(b 是 a 的一个排列),让他感到伤心。
由于 oolimry 只是一只鸭子,他只能执行以下操作来恢复自己的数组:
- 选择两个整数 i,j,满足 1≤i,j≤n;
- 交换 bi 和 bj。
数组 b 的“悲伤值”定义为:将 b 变回 a 所需的最少操作次数。
给定数组 a,请找出任意一个 b(b 是 a 的一个排列),使得 b 在所有 a 的排列中具有最大的悲伤值。
输入格式
Each test contains multiple test cases. The first line contains a single integer t (1≤t≤104) — the number of test cases. The description of the test cases follows.
The first line of each test case contains a single integer n (1≤n≤2⋅105) — the length of the array.
The second line of each test case contains n integers a1,a2,…,an (1≤ai≤n) — elements of the array a.
It is guaranteed that the sum of n over all test cases does not exceed 2⋅105.
每个测试包含多个测试用例。第一行包含一个整数 t(1≤t≤104),表示测试用例的数量。随后是各测试用例的描述。
每个测试用例的第一行包含一个整数 n(1≤n≤2⋅105),表示数组的长度。
每个测试用例的第二行包含 n 个整数 a1,a2,…,an(1≤ai≤n),表示数组 a 的元素。
保证所有测试用例的 n 之和不超过 2⋅105。
输出格式
For each test case, print n integers b1,b2,…,bn — describing the array b. If there are multiple answers, you may print any.
对于每个测试用例,输出 n 个整数 b1,b2,…,bn —— 表示数组 b。如果存在多个答案,你可以输出任意一个。
输入输出样例
输入#1
2 2 2 1 4 1 2 3 3
输出#1
1 2 3 3 2 1
说明/提示
In the first test case, the array [1,2] has sadness 1. We can transform [1,2] into [2,1] using one operation with (i,j)=(1,2).
In the second test case, the array [3,3,2,1] has sadness 2. We can transform [3,3,2,1] into [1,2,3,3] with two operations with (i,j)=(1,4) and (i,j)=(2,3) respectively.
在第一个测试用例中,数组 [1,2] 的悲伤值为 1。我们可以通过一次操作 (i,j)=(1,2) 将 [1,2] 变换为 [2,1]。
在第二个测试用例中,数组 [3,3,2,1] 的悲伤值为 2。我们可以通过两次操作将 [3,3,2,1] 变换为 [1,2,3,3],对应的操作分别为 (i,j)=(1,4) 和 (i,j)=(2,3)。
输入解题思路,AI测评打分。不知道怎么写?