题号:NC255606
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
当尖锐眼光,
当刺耳声响,
你用彩虹的浪漫温柔包装。
—— Isaac Chen
氧气少年有一个长度为

的序列

,现在要将序列

分割成一些互不相交的子段,再从中选出一些子段,将他们拼接成一个长度为

的美丽的序列。
请回忆序列子段的定义:一个序列的子段是指从原始序列中截取出的连续一部分元素序列,包括起始位置的元素和结束位置的元素。
一个长度为

的美丽的序列指的是:一个严格递增的长度为

的排列,即类似于
![[1, 2, \dots, m]](https://www.nowcoder.com/equation?tex=%5B1%2C%202%2C%20%5Cdots%2C%20m%5D)
这样的序列。
请求出至少需要从序列

中选出多少互不相交的子段,才能拼接成一个美丽的序列。或者指出无法拼接成美丽的序列。
例如:当
![n=10,m=7,a=[2,1,4,5,6,7,3,4,1,2]](https://www.nowcoder.com/equation?tex=n%3D10%2Cm%3D7%2Ca%3D%5B2%2C1%2C4%2C5%2C6%2C7%2C3%2C4%2C1%2C2%5D)
时,可以先将序列分割成
![[2,1,4],[5,6,7],[3,4],[1,2]](https://www.nowcoder.com/equation?tex=%5B2%2C1%2C4%5D%2C%5B5%2C6%2C7%5D%2C%5B3%2C4%5D%2C%5B1%2C2%5D)
,然后从中选出

个子段:
![[5,6,7],[3,4],[1,2]](https://www.nowcoder.com/equation?tex=%5B5%2C6%2C7%5D%2C%5B3%2C4%5D%2C%5B1%2C2%5D)
,最后将他们调整顺序方可拼接成序列
![[1,2,3,4,5,6,7]](https://www.nowcoder.com/equation?tex=%5B1%2C2%2C3%2C4%2C5%2C6%2C7%5D)
。因此答案为

。
例如:当
![n=2,m=2,a=[1,2]](https://www.nowcoder.com/equation?tex=n%3D2%2Cm%3D2%2Ca%3D%5B1%2C2%5D)
时,无需分割序列,将整个序列作为

个子段方可满足要求。因此答案为

。
输入描述:
第一行包含一个整数
,表示测试用例的组数。
对于每组测试用例:
第一行包含两个整数
。
第二行包含
个整数
,表示该序列。
保证对于所有的测试用例,
的总和不超过
。
输出描述:
对于每组测试用例:
仅输出一行。如果无法拼成美丽的子段,输出
;否则请输出至少需要从序列
中选出的互不相交的子段的数量。
示例1
输入
复制
3
10 7
2 1 4 5 6 7 3 4 1 2
2 2
1 2
3 2
1 3 2