CF1672F1.Array Shuffling

普及+/提高

通过率:0%

时间限制:1.00s

内存限制:256MB

AC君温馨提醒

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

题目描述

oolimry has an array aa of length nn which he really likes. Today, you have changed his array to bb, a permutation of aa, 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,ji,j such that 1≤i,j≤n1 \leq i,j \leq n.
  • Swap bib_i and bjb_j.

The sadness of the array bb is the minimum number of operations needed to transform bb into aa.

Given the array aa, find any array bb which is a permutation of aa that has the maximum sadness over all permutations of the array aa.

oolimry 有一个长度为 nn 的数组 aa,他非常喜欢这个数组。今天,你将他的数组改为了 bb(bb 是 aa 的一个排列),让他感到伤心。

由于 oolimry 只是一只鸭子,他只能执行以下操作来恢复自己的数组:

  • 选择两个整数 i,ji,j,满足 1≤i,j≤n1 \leq i,j \leq n;
  • 交换 bib_i 和 bjb_j。

数组 bb 的“悲伤值”定义为:将 bb 变回 aa 所需的最少操作次数。

给定数组 aa,请找出任意一个 bb(bb 是 aa 的一个排列),使得 bb 在所有 aa 的排列中具有最大的悲伤值。

输入格式

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

The first line of each test case contains a single integer nn (1≤n≤2⋅1051 \leq n \leq 2 \cdot 10^5) — the length of the array.

The second line of each test case contains nn integers a1,a2,…,ana_1, a_2, \ldots, a_n (1≤ai≤n1 \leq a_i \leq n) — elements of the array aa.

It is guaranteed that the sum of nn over all test cases does not exceed 2⋅1052 \cdot 10^5.

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

每个测试用例的第一行包含一个整数 nn(1≤n≤2⋅1051 \leq n \leq 2 \cdot 10^5),表示数组的长度。

每个测试用例的第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \ldots, a_n(1≤ai≤n1 \leq a_i \leq n),表示数组 aa 的元素。

保证所有测试用例的 nn 之和不超过 2⋅1052 \cdot 10^5。

输出格式

For each test case, print nn integers b1,b2,…,bnb_1, b_2, \ldots, b_n — describing the array bb. If there are multiple answers, you may print any.

对于每个测试用例,输出 nn 个整数 b1,b2,…,bnb_1, b_2, \ldots, b_n —— 表示数组 bb。如果存在多个答案,你可以输出任意一个。

输入输出样例

  • 输入#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][1,2] has sadness 11. We can transform [1,2][1,2] into [2,1][2,1] using one operation with (i,j)=(1,2)(i,j)=(1,2).

In the second test case, the array [3,3,2,1][3,3,2,1] has sadness 22. We can transform [3,3,2,1][3,3,2,1] into [1,2,3,3][1,2,3,3] with two operations with (i,j)=(1,4)(i,j)=(1,4) and (i,j)=(2,3)(i,j)=(2,3) respectively.

在第一个测试用例中,数组 [1,2][1,2] 的悲伤值为 11。我们可以通过一次操作 (i,j)=(1,2)(i,j)=(1,2) 将 [1,2][1,2] 变换为 [2,1][2,1]。

在第二个测试用例中,数组 [3,3,2,1][3,3,2,1] 的悲伤值为 22。我们可以通过两次操作将 [3,3,2,1][3,3,2,1] 变换为 [1,2,3,3][1,2,3,3],对应的操作分别为 (i,j)=(1,4)(i,j)=(1,4) 和 (i,j)=(2,3)(i,j)=(2,3)。

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

首页