传统题 1000ms 256MiB

排排序序

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

给你一个 (1,2,,N)(1,2,\dots,N) 的排列 P=(P1,P2,,PN)P=(P_1,P_2,\dots,P_N)

你要通过执行以下操作零次或多次来满足所有 i=1,2,,Ni=1,2,\dots,NPi=iP_i=i

  • 选择一个整数 kk,使得 1kN1 \leq k \leq N。如果是 k2k \geq 2,把第 11 项到第 (k1)(k-1) 项的 PP 按升序排序。然后,如果是 kN1k \leq N-1,把 PP 的第 (k+1)(k+1) 项到第 NN 项按升序排序。

可以证明,在这个问题的约束条件下,对于任意 PP,都可以用有限次的运算满足所有 i=1,2,,Ni=1,2,\dots,NPi=iP_i=i。请求解所需的最小运算次数。

输入格式

本题的测试点有多组测试数据。

第一行一个整数 TT,表示测试组数。

对于每组测试数据,第一行包括一个整数 NN,第二行包括 NN 个整数,表示排列 PP

输出格式

输出 TT 行,第 ii 行表示第 ii 组测试数据的答案。

样例

3
5
2 1 3 5 4
3
1 2 3
7
3 2 1 7 5 6 4
1
0
2

样例解释

对于第一个测试用例:

  • k=1k=1 执行操作后,PP 变成了 (2,1,3,4,5)(2,1,3,4,5)

  • 执行 k=2k=2 操作后,PP 变为 (2,1,3,4,5)(2,1,3,4,5)

  • k=3k=3 进行运算,结果是 PP 变为 (1,2,3,4,5)(1,2,3,4,5)

  • k=4k=4 进行运算,结果是 PP 变为 (1,2,3,5,4)(1,2,3,5,4)

  • k=5k=5 进行运算,结果是 PP 变为 (1,2,3,5,4)(1,2,3,5,4)

具体来说,对 k=3k=3 进行运算的结果是 PP 满足所有 i=1,2,,5i=1,2,\dots,5Pi=iP_i=i。因此,所需的最少运算次数为 11

在第三个测试用例中,先执行 k=4k=4 操作,再执行 k=3k=3 操作,结果 PP 变为 $(3,2,1,7,5,6,4) \rightarrow (1,2,3,7,4,5,6) \rightarrow (1,2,3,4,5,6,7)$ 。

提示

对于 100%100\% 的测试数据,保证 1T1051 \leq T \leq 10^53N2×1053 \leq N \leq 2 \times 10^5PP(1,2,,N)(1,2,\dots,N) 的排列。

2025 秋季训练赛 #4

未参加
状态
已结束
规则
ACM/ICPC
题目
6
开始于
2025-11-2 13:30
结束于
2025-11-2 16:30
持续时间
3 小时
主持人
参赛人数
18