编程题
### 问题描述
有一个排列 $p$ ,现在小 $L$ 可以不断地交换排列中的两个数,小 $L$ 想让这个排列变成一个单排列,但他不会求最少的操作次数,你可以帮帮他吗?
注意:单位排列指对于任意的 $i(1\leq i \leq n)$ ,满足 $p_i=i$ 的排列。
### 输入格式
第一行一个正整数$T$,表示测试点数目。
对于每一个测试点,第一行一个数 $n$ ,表示排列长度。
接下来一行 $n$ 个数 $p_i$ ,表示排列。
### 输出格式
对于每一个测试点,输出一行一个数,表示最少的交换次数。
### 样例输入
```text
5
3 4 2 5 1
```
### 样例输出
```text
4
```
### 说明
一种可行的交换$4$次的方案为:
$3~4~2~5~1 \rightarrow 1~4~2~5~3 \rightarrow 1~2~4~5~3 \rightarrow 1~2~3~5~4 \rightarrow 1~2~3~4~5$
### 评测数据规模
对于 $50$% 的数据,满足 $n \leq 5$。
对于 $80$% 的数据,满足$n \leq 1000$。
对于 $100$% 的数据,满足 $1 \leq n \leq 100000,1 \leq T \leq 5$。