#include <iostream> using namespace std; | |
int N, M; | |
bool map[1002][1002]; | |
bool visit[1001]; | |
void dfs(int y) | |
{ | |
visit[y]=1; | |
for(int i=1; i<=N; i++) | |
if(map[y][i] && !visit[i]) | |
dfs(i); | |
} | |
int main() | |
{ | |
int cnt=0; | |
cin >> N >> M; | |
for(int i=0; i<M; i++) | |
{ | |
int u, v; | |
cin >> u >> v; | |
map[u][v]=1; | |
map[v][u]=1; | |
} | |
for(int i=1; i<=N; i++) | |
{ | |
for(int j=1; j<=N; j++) | |
{ | |
if(map[i][j] && !visit[j]) | |
{ | |
dfs(i); | |
cnt++; | |
} | |
} | |
} | |
for(int i=1; i<=N; i++) | |
if(!visit[i]) cnt++; | |
cout << cnt; | |
} |
71.
'알고리즘 문제 풀이 > 1DP_과제(~180615)' 카테고리의 다른 글
171120_1210_Ladder1 (0) | 2017.11.20 |
---|---|
171120_1389_케빈 베이컨의 6단계 법칙 (0) | 2017.11.20 |
171118_2468_안전 영역 (0) | 2017.11.18 |
171117_2583_영역 구하기 (0) | 2017.11.17 |
171116_1987_알파벳 (0) | 2017.11.16 |