#CF2136C. 最小化差值
最小化差值
当前没有测试数据。
题目定义
我们定义:块 是一个数组,其中所有元素都等于该数组的长度。 例如:、、 都是块; 而 、 不是块。
如果一个数组可以由任意数量(可以是 0 个)的块拼接得到,那么这个数组称为整洁数组。注意:空数组永远是整洁数组。
给定一个长度为 的数组 ,求它的最长整洁子序列的长度。
补充定义:如果从数组 中删除任意位置的若干个(可以是 0 个或全部)元素后能得到序列 ,则称 是 的子序列。
输入格式
每个测试用例包含多组数据。 第一行输入测试用例数量 ()。
每组测试用例格式如下: 第一行输入一个整数 (),表示数组长度; 第二行输入 个整数 (),表示数组元素。
保证所有测试用例的 之和不超过 。
输出格式
对于每组测试用例,输出一个整数,表示最长整洁子序列的长度。
样例输入
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
样例说明
- 第一个测试用例:整个数组 是块,因此是整洁数组。
- 第二个测试用例:整个数组 是块,因此是整洁数组。
- 第三个测试用例:整个数组 是整洁数组,它由三个块拼接而成:、、。
- 第四个测试用例:数组 的一个最长整洁子序列是 。
- 第五个测试用例:最长整洁子序列是空数组。