| //https://www.acmicpc.net/problem/10451 #include <iostream> | |
| using namespace std; | |
| int graph[1001]; | |
| bool visited[1001]; | |
| int n; | |
| void init(){ | |
| for(int i=0; i<=n; i++) | |
| graph[i]=visited[i]=0; | |
| } | |
| void input(){ | |
| cin >> n; | |
| for(int i=1; i<=n; i++) | |
| cin >> graph[i]; | |
| } | |
| void dfs(int now){ | |
| visited[now]=1; | |
| int next=graph[now]; | |
| if(!visited[next]) dfs(next); | |
| } | |
| int main(){ | |
| int t; | |
| cin >> t; | |
| while(t-->0){ | |
| init(); | |
| input(); | |
| int ans=0; | |
| for(int i=1; i<=n; i++){ | |
| if(!visited[i]){ | |
| dfs(i); | |
| ans++; | |
| } | |
| } | |
| cout << ans << endl; | |
| } | |
| } |
'알고리즘 문제 풀이 > 1DP_과제(~180615)' 카테고리의 다른 글
| 180217_2660_회장뽑기 (0) | 2018.02.17 |
|---|---|
| 180216_2605_줄 세우기 (0) | 2018.02.16 |
| 180214_11568_민균이의 계략 (0) | 2018.02.14 |
| 180213_1563_개근상 (0) | 2018.02.13 |
| 180212_5554_심부름 가는 길 (0) | 2018.02.12 |