有一个长度为n的数子序列,你现在要做的是,将数字序列尽可能小的分割成若干个连续且不相交的段,使得段中的第一个数字或者最后一个数字是该段的长度。
本题含有多组测试数据。 第一行一个正整数T (1≤T≤1000),表示测试数据的组数。 接下来对于每组测试数据,输出包含两行。 第一行一个正整数n (2≤n≤200000),表示数组a 的长度。 第二行n 个整数ai (1≤ai ≤n),表示数组a。 (保证所有测试数据中,n 的总和不超过 200000。)
对于每组测试数据,如果可以将数组分成若干个段以满足题意,则输出一行一个正整数表示最少分成的段数,否则输出一行一个 −1 即可
3 5 1 2 3 2 1 4 1 1 1 1 5 4 2 3 4 4
2 4 2
对于第一组测试数据,可以分为{1,2,3} 和{2,1} 两段, 其中第一段的最后一个数字3 可以作为第一段的长度,第二段的第一个数字2 可以作为第二段的长度。