CF1973C.Cat, Fox and Double Maximum

普及+/提高

通过率:0%

AC君温馨提醒

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

题目描述

Fox 喜欢排列!她想出了如下问题并让 Cat 来解决:

给定一个偶数正整数 nn 和一个长度为 nn 的排列 †^\dagger pp。

对于另一个长度为 nn 的排列 qq,定义数组 aa,其中 ai=pi+qia_i = p_i + q_i(1≤i≤n1 \le i \le n)。qq 的得分为 aa 中局部极大值的个数。也就是说,qq 的得分等于满足 1<i<n1 < i < n(注意是严格不等式)、ai−1<aia_{i-1} < a_i 且 ai>ai+1a_i > a_{i+1} 的 ii 的个数(同样注意是严格不等式)。

请你找到一个排列 qq,使得得分最大。如果有多个这样的排列,输出任意一个即可。

†^\dagger 长度为 nn 的排列是指由 11 到 nn 的 nn 个不同整数组成的数组,顺序任意。例如,[2,3,1,5,4][2,3,1,5,4] 是一个排列,但 [1,2,2][1,2,2] 不是(22 出现了两次),[1,3,4][1,3,4] 也不是(n=3n=3 但出现了 44)。

输入格式

输入的第一行为一个整数 tt(1≤t≤1041 \leq t \leq 10^4),表示测试用例的数量。

每个测试用例的第一行为一个偶数整数 nn(4≤n≤1054 \leq n \leq 10^5,nn 为偶数),表示排列 pp 的长度。

每个测试用例的第二行为 nn 个整数 p1,p2,…,pnp_1, p_2, \ldots, p_n(1≤pi≤n1 \leq p_i \leq n)。保证 pp 是一个长度为 nn 的排列。

保证所有测试用例中 nn 的总和不超过 10510^5。

输出格式

对于每个测试用例,输出一行,包含一个长度为 nn 的排列(数组 qq),使得 qq 在给定约束下得分最大。如果有多个答案,输出任意一个即可。

输入输出样例

  • 输入#1

    4
    4
    1 2 3 4
    4
    4 3 1 2
    6
    6 5 1 4 2 3
    8
    1 2 4 5 7 6 8 3

    输出#1

    2 4 1 3
    3 1 4 2
    2 5 1 4 3 6
    5 4 8 2 7 1 6 3

说明/提示

在第一个样例中,a=[3,6,4,7]a = [3, 6, 4, 7]。该数组只有一个局部极大值(在第二个位置),因此所选排列 qq 的得分为 11。可以证明在约束下这是最优得分。

在最后一个样例中,得到的数组 a=[6,6,12,7,14,7,14,6]a = [6, 6, 12, 7, 14, 7, 14, 6] 有 33 个局部极大值,分别在第三、第五和第七个位置。

由 ChatGPT 4.1 翻译

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

首页