import sys
sys.stdin = open("20220717_백준_9466_텀프로젝트.txt", "r")
sys.setrecursionlimit(10 ** 7)
tese_case = int(input())
def DFS(now) :
global answer
visited[now] = True #방문처리
cycle.append(now) #방문한 학생 저장
next = data[now] #가리키는 거
if visited[next] is True: #방문을 했던 노드인데 또 탐색하러 오게 되면 사이클이다
if next in cycle : #next가 이미 cycle리스트에 들어가있으면 싸이클 생성
answer += cycle[cycle.index(next):] #사이클인 부분의 인덱스를 찾음
return
else:
DFS(next) #다음번 확인할 학생 번호 넘김
for _ in range(tese_case) :
n = int(input())
#1부터 시작하기 위해서 앞에 0 추가
data = [0] + list(map(int, input().split()))
visited = [False] * (n + 1) #방문 확인용
answer = []
#방문하지 않은 곳부터 시작
for i in range(1, n+1) :
if visited[i] is False :
cycle = []
DFS(i)
print(n-len(answer))
#20220717_백준_9466_텀프로젝트.py
#https://www.acmicpc.net/problem/9466
백준_9466_텀프로젝트