본문 바로가기

Algorithm

C++(씨쁠쁠)(cplusplus)-백준(baekjoon)(BaekJoon)코딩 10451번:순열 사이클 답

반응형
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
using namespace std;
 
int T, N, a[1001], c[1001],ans;
void DFS(int x)
{
    if (c[x])return;
    c[x] = 1;
    DFS(a[x]);
}
int main() {
    
    cin >> T;
    while (T--)
    {
        cin >> N;
        
        for (int i = 1; i <= N; i++)
        {
            cin >> a[i];
        }
        for (int i = 1; i <= N; i++)
        {
            if (!c[i])
            {
                DFS(i);
                ans++;
            }
        }
        cout << ans << '\n';
        for (int i = 1; i <= N; i++)
        {
            a[i] = 0;
            c[i] = 0;
        }
        ans = 0;
    }
}
cs