순환사이클을 형성해야만 팀이 될 수 있다.
import sys
sys.setrecursionlimit(10 ** 6)
input = sys.stdin.readline
def dfs(v):
global result
visited[v] = 1
cycle.append(v)
next = stu[v]
if not visited[next]:
dfs(next)
else:
# 순열 사이클인지 아닌지
if next in cycle:
result += cycle[cycle.index(next):]
return
for _ in range(int(input())):
n = int(input())
stu = [0] + list(map(int, input().split()))
visited = [0] * (n+1)
result = []
for i in range(1, n+1):
if not visited[i]:
cycle = []
dfs(i)
print(n-len(result))