#1245. ddd 的序列合并

内存限制:512 MiB 时间限制:4000 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: Rhodoks

题目描述

aabb 为两个长度分别为 n,mn, m 的序列,我们可以递归的定义一个长度为 n+mn + m 的序列 merge(a,b)\text{merge}(a, b),策略如下:

  • 如果两个序列中某个序列为空,那么结果就是另一个序列。也就是 merge(,b)=b,merge(a,)=a\text{merge}(\emptyset, b) = b,\text{merge}(a, \emptyset) = a。特别的,merge(,)=\text{merge}(\emptyset, \emptyset) = \emptyset。

  • 如果两个序列都非空,而且 a1<b1a_1 < b_1,那么 merge(a,b)=[a1]+merge([a2,,an],b)\text{merge}(a, b) = [a_1] + \text{merge}([a_2, \cdots, a_n], b)

  • 如果两个序列都非空,而且 a1>b1a_1 > b_1,那么 merge(a,b)=[b1]+merge(a,[b2,,bn])\text{merge}(a, b) = [b_1] + \text{merge}(a, [b_2, \cdots, b_n])

  • 如果两个序列都非空,而且 a1=b1a_1 = b_1,那么 merge(a,b)\text{merge}(a, b) 既可以是 [a1]+merge([a2,,an],b)[a_1] + \text{merge}([a_2, \cdots, a_n], b) 也可以是 [b1]+merge(a,[b2,,bn])[b_1] + \text{merge}(a, [b_2, \cdots, b_n])

给出一个长度为 2n2n 的序列 tt ,求问是否存在两个长度为 nn排列 p,qp, q,使得 merge(p,q)\text{merge}(p, q) 有可能为 tt

输入格式

第一行一个整数 TT,表示询问组数。

对于每组询问,第一行一个整数 nn,意义如上所述。接下来一行 2n2n 个整数,表示序列 tt

输出格式

对于每个询问,如果存在,输出 "YES",否则输出 "NO"。询问间的答案用换行符隔开。

样例

样例输入

5
6
6 6 6 6 6 6 6 6 6 6 6 6
4
4 4 3 3 2 2 1 1
4
1 1 2 2 3 3 4 4
4
3 2 4 1 2 3 4 1
4
4 2 4 1 2 3 3 1

样例输出

NO
NO
YES
YES
NO

数据范围与提示

1T50,1n1051 \leq T \leq 50, 1 \leq n \leq 10^5