2072. cats 与有趣的数组

时间限制 1000 ms   内存限制 256 MB

正如 cats 喜欢出简单题一样,cats 也喜欢简单的数组。定义一个数组 $a$ 是简单的,当且仅当这个数组满足对于任意的 $1 \leq i \leq n$,都有 $a_i = i$。例如数组 $(1,2,3)$,$(1,2,3,4,5)$,$(1)$ 都是简单的,而数组 $(2,1)$,数组 $(1,2,4)$ 不是简单的。

cats 发现简单的数组的总数太少了,于是 cats 又定义了有趣的数组。有趣的数组由以下方式定义:

  1. 若数组 $a$ 是简单的,那么数组 $a$ 是有趣的。

  2. 若数组 $a$ 是有趣的,且数组 $b$ 是简单的,那么将数组 $b$ 插入数组 $a$ 任意位置(包括数组 $a$ 的开始之前,结尾之后或者任意两个相邻的数中间)得到的数组是有趣的。

  3. 所以不能通过以上方式得到的数组均不为有趣的。

例如数组 $(1,2)$ 是有趣的,因为数组 $(1,2)$ 是简单的;数组 $(1,1,2,2)$ 是有趣的,因为这个数组可以将数组 $(1,2)$ 插入数组 $(1,2)$ 第一个数和第二个数中间得到;数组 $(1,2,1,2)$ 也是有趣的,因为这个数组可以将数组 $(1,2)$ 插入数组 $(1,2)$ 的末尾得到。

现在 cats 有一个长为 $n$ 的数组 $a$,你需要帮 cats 判断数组 $a$ 是否是有趣的。

输入数据

第一行为一个整数 $T$ ,表示测试点的总数。 $1\le T\le 10^4$ 。

对于每个测试点:

测试点第一行为一个整数 $n$,表示数组 $a$ 的长度。$1 \leq n\leq 2 \times 10^5$。

测试点的第二行为 $n$ 个整数 $a_1,a_2,\dots ,a_n$,表示数组 $a$。 $1\le a_i\le n$。

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

输出数据

对于每组测试点,如果数组 $a$ 是有趣的,输出 YES,否则输出 NO

样例输入

复制
8
1
1
3
1 2 3
4
1 1 2 2
4
1 2 1 2
4
2 1 2 1
6
1 1 1 2 2 2
6
1 1 2 2 3 3
7
1 2 3 1 2 4 1 \n
 \n
 \n
 \n
 · · \n
 \n
 · · · \n
 \n
 · · · \n
 \n
 · · · \n
 \n
 · · · · · \n
 \n
 · · · · · \n
 \n
 · · · · · · \n

样例输出

复制
YES
YES
YES
YES
NO
YES
NO
YES   \n
   \n
   \n
   \n
  \n
   \n
  \n
   \n

样例说明

对于第一组测试,由于数组 $(1)$ 是简单的,所以数组 $(1)$ 是有趣的。

对于第二组测试,由于数组 $(1,2,3)$ 是简单的,所以数组 $(1)$ 是有趣的。

第三组和第四组的解释已在题目描述中给出。

对于第五组测试,由于所有简单的数组第一个数都为 $1$,所以一个简单的数组经过有限次插入简单的数组得到的数组第一个数一定也是 $1$。但这组测试的数组 $a$ 第一个数不是 $1$,所以数组 $a$ 一定不是有趣的。

对于第六组测试,由于数组 $(1,1,2,2)$ 是有趣的,而数组 $(1,1,1,2,2,2)$ 可以通过将简单的数组 $(1,2)$ 插入数组 $(1,1,2,2)$ 的第二个数和第三个数中间得到,所以数组 $a$ 是有趣的。

提交

请先 登录

© 2025 FAQs Contact About