编程题
### 问题描述 小然是一位热衷于魔术的孩子,他有一套独特的卡牌,每张卡牌上都印有一个唯一的数字,形成了一个长度为 $N$ 的卡牌排列 $A$。小然可以进行以下魔术操作: 1) 选择左右边界 $L$ 和 $R$,满足 $1 \leq L \leq R \leq N$ 且 $R - L + 1 < N$。 2) 移除子卡牌序列 $A_L...A_R$,剩下的部分将重新连接起来。 这个操作的得分等于被移除的子序列的长度,即 $R - L + 1$。 例如,如果 $A = [3, 1, 4, 6, 5, 2]$,小然选择 $L = 3, R = 5$,那么这次操作的得分就是 $3$,新的 $A$ 变为 $[3, 1, 2]$。 小然想要进行一次这样的操作,使得操作后的 $A$ 仍然是一个排列,即每个从 $1$ 到新的 $A$ 的长度的整数仍然只出现一次。你能帮助小然找出他能得到的最高分数是多少吗? ### 输入格式 第一行包含一个整数 $T$,表示测试用例的数量。 每个测试用例由两行组成: - 第一行包含一个整数 $N$,表示排列 $A$ 的大小。 - 第二行包含 $N$ 个空格分隔的整数 $A_1, A_2, ..., A_N$,表示排列 $A$。 ### 输出格式 对每个测试用例,输出小然在执行操作一次后仍保持 $A$ 为排列的情况下能得到的最高分数。 ### 样例输入 ``` 3 3 2 1 3 7 1 2 3 4 5 6 7 6 3 1 4 6 5 2 ``` ### 样例输出 ``` 1 6 3 ``` ### 说明 样例 1:小然可以移除子序列 $A_3$,得分为 $1$,新的 $A$ 变为 $[2, 1]$,仍然是一个排列。 样例 2:小然可以移除子序列 $A_2...A_7$,得分为 $6$,新的 $A$ 变为 $[1]$,仍然是一个排列。 样例 3:小然可以移除子序列 $A_3...A_5$,得分为 $3$,新的 $A$ 变为 $[3, 1, 2]$,仍然是一个排列。 ### 评测数据范围 $1 \leq T \leq 10^5$。 $2 \leq N \leq 10^5$。 $A$ 是一个排列。 所有测试用例中 $N$ 的总和不超过 $5 \times 10^5$。
查看答案
赣ICP备20007335号-2