每个测试的时间限制:2 秒
内存限制:256 兆字节
如果对于所有 1≤i≤n−1,都满足:
[
\min(a_1, \dots, a_i) \ge \operatorname{mex}(a_{i+1}, \dots, a_n)
]
则我们称序列 a1,a2,…,an 是魔法的。特别地,任何长度为 1 的序列都被认为是魔法的。
最小排除值(MEX):对于整数集合 a1,a2,…,ak,其 mex 定义为最小的非负整数 t,使得 t 不出现在该集合中。
题目
给定一个由 n 个非负整数组成的序列 a。请找出序列 a 的一个魔法子序列 ∗ 的最大可能长度。
∗ 序列 a 是序列 b 的子序列,如果 a 可以通过删除 b 中若干个(可能为零个或全部)元素(位置任意)得到。
输入格式
每个测试文件包含多个测试用例。第一行包含测试用例的数量 t(1≤t≤104)。接下来是每个测试用例的描述。
每个测试用例的第一行包含一个整数 n(1≤n≤2⋅105)—— 序列 a 的长度。
每个测试用例的第二行包含 n 个整数 a1,a2,…,an(0≤ai≤109)—— 序列 a 中的元素。
保证所有测试用例的 n 之和不超过 2⋅105。
输出格式
对于每个测试用例,输出一个整数 —— 序列 a 的一个魔法子序列的最大可能长度。
示例
输入:
8
5
4 3 2 1 0
6
4 3 3 2 1 0
4
2 0 1 2
1
777
4
1000000000 1 7 9
2
0 1
2
1 2
4
0 1 0 1
输出:
5
5
3
1
4
2
2
3
示例解释
-
第一个测试用例:序列 [4,3,2,1,0] 本身就是魔法的,因为:
- min(4)=4,mex(3,2,1,0)=4,4≥4
- min(4,3)=3,mex(2,1,0)=3,3≥3
- min(4,3,2)=2,mex(1,0)=2,2≥2
- min(4,3,2,1)=1,mex(0)=1,1≥1
-
第二个测试用例:原序列 [4,3,3,2,1,0] 不是魔法的,因为 min(4,3)=3,mex(3,2,1,0)=4,3<4。但是它的子序列 [4,3,2,1,0] 是魔法的,所以答案是 5。