fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. bool visited[10001];
  5. int adj[10001][10001];
  6.  
  7.  
  8. void dfs(int v, int node)
  9. {
  10. //printf("\n%d",v);
  11. visited[v]=1;
  12. for(int i=0; i<node; i++)
  13. {
  14. if(!visited[i] && adj[v][i]==1) dfs(i,node);
  15. }
  16. }
  17.  
  18.  
  19. int main()
  20. {
  21. int tc, n, m, x, y, k, i, ans;
  22.  
  23. cin>>tc;
  24. while(tc--)
  25. {
  26. ans=0;
  27. cin>>n>>m;
  28.  
  29. memset(adj,0,sizeof(adj));
  30. memset(visited, false, sizeof(visited));
  31.  
  32. for(i=0;i<m;i++)
  33. {
  34. cin>>x>>y;
  35. adj[x][y]=true;
  36. adj[y][x]=true;
  37. }
  38.  
  39. for(i=0;i<n;i++)
  40. {
  41. if(!visited[i])
  42. {
  43. ans++;
  44. dfs(i,n);
  45. }
  46. }
  47. cout<<ans<<endl;
  48. }
  49. }
  50.  
Success #stdin #stdout 0.12s 406784KB
stdin
2
4
2
0 1
0 2
8
0
stdout
2
8