接下来考虑从 P' 反着交换回 P 的情况,相当于前面的逆运算,我们设在第 i 个位置前且比 P_i 大的数有 cnt'_ i 个,则交换的条件为 cnt'_ i + 1 > cnt'_ {i+1} 且 cnt'_ i + 1 > k,又因为 P' 一定是已经收敛的数组,所以 cnt'_ i 一定不大于 k,故条件可进一步简化为 cnt'_ i = k。
每次交换相当于把这个数往后挪一位并加一,所以我们从后往前算方案数更方便。
对于最后一个满足 cnt'_ i = k 的 i ,它往后挪多少位都是可以的,而对于前面的,在它挪到上一个 cnt'_ i = k 现在所在的位置之前,显然也是可以的,而因为挪的过程中它会自增 1,所以前面来的数一定不会小于后面的数,所以在此时交换也是合法的。综上,对于每一个满足 cnt'_ i = k 的 i,都能随意往后挪动,至多可以挪动 n - i 次,故一共有 n - i + 1 中选择,所以答案为 \prod\limits_{cnt'_ i=k}(n-i+1)。