baekjoon 20251205

This commit is contained in:
songyc macbook 2025-12-05 21:26:24 +09:00
parent 96b18191a8
commit 71c5d72469

View File

@ -0,0 +1,57 @@
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();
}
}