import java.util.*; public class _9466 { static boolean[] visited; static boolean[] done; static int[] select; static int cnt; static void dfs(int current) { visited[current] = true; int next = select[current]; if (!visited[next]) dfs(next); else if (!done[next]) { cnt++; int n = next; while(n != current) { cnt++; n = select[n]; } } done[current] = true; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); int T = sc.nextInt(); String result = ""; while (T-- > 0) { int N = sc.nextInt(); select = new int[N+1]; visited = new boolean[N+1]; done = new boolean[N+1]; cnt = 0; for(int i=1; i<=N; i++) { select[i] = sc.nextInt(); if (select[i] == i) { cnt++; visited[i] = true; done[i] = true; } } for(int n = 1; n<=N; n++) { if (!done[n]) dfs(n); } result += "" + (N-cnt) + "\n"; } System.out.println(result); sc.close(); } }