CF2117B.Shrink

入门

通过率:0%

AC君温馨提醒

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

题目描述

对一个大小为 $ m $ 的数组 $ a $ 进行“缩小操作”的定义如下:

  • 选择一个索引 $ i (( 2 \le i \le m - 1 $),使得 $ a_i \gt a_{i - 1} $ 且 $ a_i \gt a_{i + 1} $。
  • 将 $ a_i $ 从数组中移除。

定义一个排列 $ ^{\text{∗}} $ $ p $ 的“分数”为可以对 $ p $ 执行的最大缩小操作次数。

鸭鸭给你一个整数 $ n $。构造一个长度为 $ n $ 的排列 $ p $,使其分数尽可能大。如果有多个答案,输出任意一个即可。

$ ^{\text{∗}} $ 一个长度为 $ n $ 的排列是指由 $ 1 $ 到 $ n $ 的 $ n $ 个不同整数按任意顺序组成的数组。例如,$ [2,3,1,5,4] $ 是一个排列,但 $ [1,2,2] $ 不是排列(因为 $ 2 $ 出现了两次),$ [1,3,4] $ 也不是排列(因为 $ n=3 $ 但数组中出现了 $ 4 $)。

输入格式

输入的第一行包含一个整数 $ t (( 1 \le t \le 10^3 $)——测试用例的数量。

每个测试用例包含一个整数 $ n (( 3 \le n \le 2 \cdot 10^5 $)——排列的大小。

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

输出格式

对于每个测试用例,输出任意一个能够最大化缩小操作次数的排列 $ p_1, p_2, \dots, p_n $。

输入输出样例

  • 输入#1

    2
    3
    6

    输出#1

    1 3 2
    2 3 6 4 5 1

说明/提示

在第一个测试用例中:

  • 我们选择 $ p = [1, 3, 2] $。
  • 选择索引 $ 2 $,并移除 $ p_2 $。数组变为 $ p = [1, 2] $。

可以证明,我们能执行的最大操作次数是 $ 1 $。另一个有效答案是 $ p = [2, 3, 1] $。

在第二个测试用例中:

  • 我们选择 $ p = [2, 3, 6, 4, 5, 1] $。
  • 选择索引 $ 5 $,并移除 $ p_5 $。数组变为 $ p = [2, 3, 6, 4, 1] $。
  • 选择索引 $ 3 $,并移除 $ p_3 $。数组变为 $ p = [2, 3, 4, 1] $。
  • 选择索引 $ 3 $,并移除 $ p_3 $。数组变为 $ p = [2, 3, 1] $。
  • 选择索引 $ 2 $,并移除 $ p_2 $。数组变为 $ p = [2, 1] $。

我们能执行的最大操作次数是 $ 4 $。任何分数为 $ 4 $ 的排列都是有效的。

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

首页