#818. Y桑的求助

Y桑的求助

题目描述

​ Y桑被刘桑难住了,他需要你的帮助!事情的起因是这样的:

​ Y桑是一个数论笨蛋,线性代数和离散数学都考不及格,他很崇拜刘桑,因为刘桑是个数论高手。刘桑告诉Y桑:你要学会深入思考,换角度思考,瞎写乱画不如静下心思考一会。

​ Y桑听后大受启发,他拿出一个序列 aa ,大刀阔斧讲这个数组分割成若干段(序列的每个元素正好属于一个段,每个段是序列的一组连续的元素)。然后Y桑开始探究这些段,对于每一段都有一个长度,他把这个段的长度写在这一段的左边或右边,这样一来就形成了一个新的序列 bb

​ 例如,Y桑拿出一个序列 a=[1,2,3,1,2,3]a = [1, 2, 3, 1, 2, 3] ,假设它被分割成如下的片段:$\color{red}{[1]} \color{black}{+} \color{blue}{[2, 3, 1]} \color{black}{+} \color{green}{[2, 3]}$ ,不同的段已经用不同的颜色标注出,那么我们可能获得新的序列 bb 如下:

​ Y桑赶紧把自己的研究成果拿给刘桑看,刘桑看了嗤之以鼻,并表示要给Y桑增加难度:刘桑把所有的 aa 序列都烧掉了,只留下 bb 序列,但是这些 bb 序列是夹杂着失败数据的!所以刘桑要求Y桑判断这些 bb 序列哪些是正确的哪些是错误的。

​ 也就是说,刘桑要求Y桑判断:对于任意一个 bb 序列,是否可以确定它一定是通过一个存在的 aa 序列构造出来的。

输入格式

第一行包含一个整数 tt,表示测试案例的数量。

每组测试案例的第一行有一个数字 nn (1n21051 \le n \le 2 \cdot 10^5),表示 bb 数组的长度。

第二行有nn个整数b1,b2,,bnb_1, b_2, \dots, b_n(1bi1091 \le b_i \le 10^9)

保证所有测试案例中nn之和不超过21052 \cdot 10^5

输出格式

每个测试案例输出一行

如果通过 bb 序列可以找到一个存在的 aa 序列,就输出“YES”,否则输出“NO”。

样例

样例输入1

7
9
1 1 2 3 1 3 2 2 3
5
12 1 2 7 5
6
5 7 8 9 10 3
4
4 8 6 2
2
3 1
10
4 6 2 1 9 4 9 3 4 2
1
1

样例输出1

YES
YES
YES
NO
YES
YES
NO

样例解释

  • 在第一个测试案例中,序列bb可以从序列a=[1,2,3,1,2,3]a = [1,2,3,1,2,3]中得到,其分割方式如下:[1]+[2,3,1]+[2,3][1] + [2,3,1] + [2,3],序列b:[1,1,2,3,1,3,2,2,3]b : [1,1,2,3,1,3,2,2,3]
  • 在第二个测试案例中,序列bb可以从序列a=[12,7,5]a = [12,7,5]中得到,其分割方式如下:[12]+[7,5][12] + [7,5],序列b:[12,1,2,7,5]b : [12,1,2,7,5]
  • 在第三个测试案例中,序列bb可以从序列a=[7,8,9,10,3]a = [7,8,9,10,3]中得到,其分割方式如下:[7,8,9,10,3][7,8,9,10,3],序列b:[5,7,8,9,10,3]b : [5,7,8,9,10,3]
  • 在第四个测试案例中,找不到序列 aa ,也就是说,它是一个失败的研究数据。