from collections import deque
t = int(input())
for _ in range(t):
n = int(input())
l = list(map(int, input().split()))
g = [[] for _ in range(n)]
for i in range(n):
g[i].append(l[i]-1)
check = [-1] * n
def dfs(v):
q = deque()
q.append(v)
check[v] = 0
while q:
x = q.popleft()
for y in g[x]:
if check[y] == -1:
check[y] = check[x] + 1
q.append(y)
cnt = 0
for i in range(n):
if check[i] == -1:
dfs(i)
cnt += 1
print(cnt)
완전탐색 기본 문제