序列分块(block)
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
读写要求
本题采用文件读写,请在提交代码时使用正确的文件读写方式,否则会导致 RE
输入:block.in
输出:block.out
题目描述
给定一个长度为 的整数序列 。
如果一个序列由若干个块依次组成,并且每个块都以它的长度开头,即先是这个块的长度,然后是这个块中的元素,那么这个序列被称为美丽的。例如,序列 [ $ \color{red}{3},\ \color{red}{3},\ \color{red}{4},\ \color{red}{5},\ \color{green}{2},\ \color{green}{6},\ \color{green}{1} $ ] 和 [ $ \color{red}{1},\ \color{red}{8},\ \color{green}{4},\ \color{green}{5},\ \color{green}{2},\ \color{green}{6},\ \color{green}{1} $ ] 是美丽的序列(不同的块用不同颜色表示),而 [ ],[ ],[ ] 不是美丽的序列。
在一次操作中,你可以从序列中删除任意一个元素。请问最少需要多少次操作,才能使给定序列变成美丽的序列?
输入格式
输入的第一行包含一个整数 ()——测试用例的数量。接下来是各个测试用例的描述。
每个测试用例的第一行包含一个整数 ()——序列 的长度。
每个测试用例的第二行包含 个整数 ()——序列 的元素。
保证所有测试用例中 的总和不超过 。
输出格式
对于每个测试用例,输出一个整数——使序列 变成美丽序列所需删除的最少元素个数。
输入输出样例
7
7
3 3 4 5 2 6 1
4
5 6 3 2
6
3 4 1 6 7 7
3
1 4 3
5
1 2 3 4 5
5
1 2 3 1 2
5
4 5 5 1 5
0
4
1
1
2
1
0
说明/提示
在样例的第一个测试用例中,给定序列已经是美丽的,正如题面中所展示的那样。
在样例的第二个测试用例中,只有删除所有元素,才能使序列变成美丽的序列。
在样例的第五个测试用例中,可以通过删除第一个元素和最后一个元素,使序列变成美丽的序列。此时序列将变为 [ ]。