给你一个长度为n的排列p和一个正整数k(k≤n),在一次操作中,您可以任选k个不同的元素pi1,pi2,…,pik,将他们从排列中删除,然后再将它们按递增顺序添加到排列的末尾。
例如:如果p=[2,5,1,3,4]和k = 2,你可以选5和3作为运算的元素,则通过操作后,[2,5,1,3,4]→[2,1,4,3,5]
请帮忙找出按递增顺序对排列进行排序所需的最小操作数。测试数据保证,这样做一定是可行。
特别提醒:长度为n的排列是由1到n共n个不同的整数按照任意顺序组成。例如,[2,3,1,5,4]是一个排列,但是[1,2,2]不是一个排列(2在数组中出现两次),[1,3,4]也不是一个排列(n=3,但是有4在数组中)。
第一行只有一个整数t(1≤t≤104):测试用例的数量。
接下来共2t行,每个测试用例两行:
第一行有两个整数n和k:(2≤n≤105, 1≤k≤n)
第二行包含n个整数p1, p2,…,pn(1≤pi≤n)。 测试数据保证p是一种排列,同时保证所有排列的长度n的和不超过105。
在第一个测试用例中,排列已经排序,所需最少操作次数为0;
在第二个测试用例中,您可以选择元素3,排列顺序变换如下:[3,1,2]→[1,2,3],则所需最少操作次数为1;
在第三个测试用例中,您可以选择元素3和元素4,排列顺序变化如下: [1,3,2,4]→[1,2,3,4],则所需最少操作此时为1;
在第四个测试用例中,可以证明不可能对排列进行1次变换操作就可以将排列变换成有序排列。然而,如果我们第一次选择元素2和1,第二次选择元素3和4,排列变换如下:[2,3,1,4]→[3,4,1,2]→[1,2,3,4],则排列转换为有序排列,所以所需最少操作次数为2次。