#agc052d. [agc052_d]Equal LIS
[agc052_d]Equal LIS
题目描述
给定一个整数排列 ,其中的元素为 到 的整数。你能将它拆分成两个子序列,使得两个子序列的最长递增子序列长度相等吗?
具体地说,你的目标是找到两个整数序列 和 ,满足以下条件:
- 和 都是 的子序列。
- 整数 在 和 中恰好出现一次。
- ( 的最长递增子序列的长度)( 的最长递增子序列的长度)
判断是否可以实现这个目标。
输入包含 个测试用例,请解决每个测试用例。
约束条件
- 是 到 的整数排列。
- 所有测试用例中 的总和不超过 。
输入
从标准输入中按以下格式给出输入。输入的第一行如下所示:
接下来,有 个测试用例,每个测试用例的格式如下:
输出
对于每个测试用例,如果可以将排列拆分成两个子序列,使得两个子序列的最长递增子序列长度相等,则输出 YES
,否则输出 NO
。每个答案占一行。请注意,评判器大小写不敏感:你可以输出大写字母或小写字母。
示例输入 1
5
1
1
2
2 1
3
1 2 3
5
1 3 5 2 4
6
2 3 4 5 6 1
示例输出 1
NO
YES
NO
YES
NO
\[1, 3, 5, 2, 4\] 可以被拆分成 \[1, 5\] 和 \[3, 2, 4\],两者的最长递增子序列长度都为 2。
而无法将 \[2, 3, 4, 5, 6, 1\] 拆分成两个长度相等的子序列,使得它们的最长递增子序列长度相等。