CF1973C Cat, Fox and Double Maximum
题目描述
Fox 喜欢排列!她想出了如下问题并让 Cat 来解决:
给定一个偶数正整数 $n$ 和一个长度为 $n$ 的排列 $^\dagger$ $p$。
对于另一个长度为 $n$ 的排列 $q$,定义数组 $a$,其中 $a_i = p_i + q_i$($1 \le i \le n$)。$q$ 的得分为 $a$ 中局部极大值的个数。也就是说,$q$ 的得分等于满足 $1 < i < n$(注意是严格不等式)、$a_{i-1} < a_i$ 且 $a_i > a_{i+1}$ 的 $i$ 的个数(同样注意是严格不等式)。
请你找到一个排列 $q$,使得得分最大。如果有多个这样的排列,输出任意一个即可。
$^\dagger$ 长度为 $n$ 的排列是指由 $1$ 到 $n$ 的 $n$ 个不同整数组成的数组,顺序任意。例如,$[2,3,1,5,4]$ 是一个排列,但 $[1,2,2]$ 不是($2$ 出现了两次),$[1,3,4]$ 也不是($n=3$ 但出现了 $4$)。
输入格式
输入的第一行为一个整数 $t$($1 \leq t \leq 10^4$),表示测试用例的数量。
每个测试用例的第一行为一个偶数整数 $n$($4 \leq n \leq 10^5$,$n$ 为偶数),表示排列 $p$ 的长度。
每个测试用例的第二行为 $n$ 个整数 $p_1, p_2, \ldots, p_n$($1 \leq p_i \leq n$)。保证 $p$ 是一个长度为 $n$ 的排列。
保证所有测试用例中 $n$ 的总和不超过 $10^5$。
输出格式
对于每个测试用例,输出一行,包含一个长度为 $n$ 的排列(数组 $q$),使得 $q$ 在给定约束下得分最大。如果有多个答案,输出任意一个即可。
说明/提示
在第一个样例中,$a = [3, 6, 4, 7]$。该数组只有一个局部极大值(在第二个位置),因此所选排列 $q$ 的得分为 $1$。可以证明在约束下这是最优得分。
在最后一个样例中,得到的数组 $a = [6, 6, 12, 7, 14, 7, 14, 6]$ 有 $3$ 个局部极大值,分别在第三、第五和第七个位置。
由 ChatGPT 4.1 翻译