#include <iostream>
#include <queue>
#include <stdio.h>
#include <string>
#include <cmath>
int arr[100001];
int visited[100001];
bool Done[100001];
int t, n, cnt=0;
void bfs(int v) {
if (Done[v] == true || visited[v] == -1) {
return;
}
if (visited[v]==0) {
visited[v] = 1;
}
else if (visited[v] == 1) {
Done[v] = true;
cnt++;
}
bfs(arr[v]);
visited[v] = -1;
}
int main() {
scanf("%d", &t);
for (int i = 0;i < t;i++) {
scanf("%d", &n);
for (int j = 1;j <= n;j++) {
visited[j] = 0;
Done[j] = 0;
arr[j] = 0;
}
for (int j = 1;j <= n;j++) {
scanf("%d", &arr[j]);
}
for (int j = 1;j <= n;j++) {
if (visited[j]==0) {
bfs(j);
}
}
printf("%d\n", n-cnt);
cnt = 0;
}
}