fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int vis[100001];
  4. vector<int> adj[100001];
  5. void dfs( int node)
  6. {
  7. vis[node]=1;
  8. for( int child: adj[node])
  9. {
  10. if( vis[child]==0)
  11. {
  12. dfs(child);
  13. }
  14. }
  15. }
  16.  
  17. int main()
  18. {
  19. int t;
  20. cin>>t;
  21. while(t--)
  22. {
  23. int n, m;
  24. cin>>n>>m;
  25. for( int i=1;i<=m;i++)
  26. {
  27. int a,b;
  28. cin>> a>> b;
  29. adj[a].push_back(b);
  30. adj[b].push_back(a);
  31. }
  32. int cc=0;
  33. for( int i=1;i<=n;i++)
  34. {
  35. if( vis[i]==0)
  36. {
  37. dfs(i);
  38. cc++;
  39. }
  40.  
  41. }
  42. cout<<cc<<endl;
  43. }
  44. return 0;
  45. }
Success #stdin #stdout 0s 5688KB
stdin
1
4 2
1 2
2 3
stdout
2