思维训练1
描述
给一个长度n包含[1,n]所有数的序列p。每次操作选择两个索引 1≤i<j≤n
,并交换p[i]和p[j]。求出序列中恰好存在一个逆序对的最少操作次数。
逆序对指1≤i<j≤n
且p[i]>p[j]
。
输入
第一行,一个t。
接下来t个询问:
每组数据第一行一个n。
每组数据的第二行n个pi。
对于100%的数据:
1\le t \le 10^4
2 \le n \le 2×10^5
1 \le p_i \le n
对于每组测试n的总和不超过2×10^5。
输出
每个询问一行一个整数表示最少操作次数。
样例
输入
4 2 2 1 2 1 2 4 3 4 1 2 4 2 4 3 1
输出
0 1 3 1
提示
第一组无需操作
第二组变为[2,1],(1,2)
第三组变为[1,2,4,3],(1,3)(2,4)(3,4)
第四组变为[2,1,3,4],(2,4)