[백준 1068번] 트리
2017. 8. 21. 23:35ㆍ알고리즘/백준
반응형
소스코드
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 39 40 41 42 43 44 | #include <iostream> using namespace std; int n, rm, tr[51][51] = { 0, }, visit[51][51] = { 0, }, root[51] = {0,}; int q[10001], h = 0, t = 0, cnt=0; void bfs() { while (h != t) { int cur = q[h++]; int flag = 0; for (int i = 0; i < n; i++) { if (tr[cur][i] == 1 && visit[cur][i]==0) { flag = 1; visit[cur][i] = 1; q[t++] = i; } } if (!flag && !root[cur]) { cnt++; } } } int main() { cin >> n; for (int i = 0; i < n; i++) { int in; cin >> in; if (in == -1) { q[t++] = i; root[i] = 1; continue; } tr[in][i] = 1; } cin >> rm; for (int i = 0; i < n; i++) { tr[rm][i] = 0; tr[i][rm] = 0; } bfs(); cout << cnt << '\n'; return 0; } | cs |
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준 4963번] 섬의 개수 (0) | 2017.08.27 |
---|---|
[백준 1269번] 대칭 차집합 (0) | 2017.08.23 |
[백준 2688번] 줄어들지 않아 (0) | 2017.08.21 |
[백준 1890번] 점프 (0) | 2017.08.15 |
[백준 4883번] 삼각 그래프 (0) | 2017.08.15 |