#CF2135A. 消除差异
消除差异
题目翻译
我们定义一个块为一个数组,其中所有元素都等于该数组的长度。
例如,、 和 都是块,而 和 则不是。
如果一个数组可以由任意多个块(可能为零个)连接而成,则称该数组是整洁的。注意,空数组总是整洁的。
现给定一个由 个整数组成的数组 。
请找出它的最长整洁子序列的长度。
* 子序列 是序列 的一个子序列,如果 可以通过从 中删除若干(可能为零个或全部)元素(不改变剩余元素的相对顺序)得到。
输入格式
每个测试点包含多个测试用例。第一行包含测试用例的数量 ()。
每个测试用例的描述如下:
第一行包含一个整数 ()——数组 的长度。
第二行包含 个整数 ()——数组 的元素。
保证所有测试用例的 之和不超过 。
输出格式
对于每个测试用例,输出一个整数——该数组 的最长整洁子序列的长度。
示例
输入:
6
1
1
2
2 2
4
2 2 1 1
6
1 2 3 3 3 1
8
8 8 8 8 8 8 8 7
10
2 3 3 1 2 3 5 1 1 7
输出:
1
2
4
5
0
5
说明
在第一个测试用例中,整个数组 是整洁的,因为它本身就是一个块。
在第二个测试用例中,整个数组 是整洁的,因为它本身就是一个块。
在第三个测试用例中,整个数组 是整洁的,因为它由三个块连接而成:、 和 。
在第四个测试用例中, 的一个最长整洁子序列是 。
在第五个测试用例中, 的最长整洁子序列是空序列。