#CF2124H. 最长好子序列
最长好子序列
H. 最长好子序列
时间限制:7 秒
内存限制:1024 兆字节
如果一个长度为 的数组 满足以下条件,则称它是好的:
- 对每个 ,有 。
- 存在一个长度为 的排列 ,使得对每个 , 是满足 的最小整数。
例如,数组 是好的(排列 满足第二个条件),但数组 不是好的。
注意,空数组被认为是好的。
给定一个长度为 的数组 。找出 的最长好子序列 的长度。
序列 是序列 的子序列,如果 可以通过删除 中的若干(可能为零或全部)元素(不改变剩余元素的相对顺序)得到。
输入
每个测试包含多个测试用例。第一行包含测试用例数 ()。
每个测试用例的第一行包含一个整数 ()—— 数组 的长度。
第二行包含 个整数 ()—— 数组 。
保证所有测试用例的 之和不超过 。
输出
对于每个测试用例,输出一行,包含最长好子序列的长度。
样例
输入
5
5
1 1 3 3 5
3
1 1 2
4
2 2 2 2
7
1 2 4 2 4 6 2
1
1
输出
5
2
0
5
1
说明
- 第一个测试用例中,整个序列本身就是好的。
- 第二个测试用例中,最长好子序列是 。