fork(1) download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define scan(a) scanf("%d",&a)
  5. #define r5 100005
  6. #define f(i,a,b) for(i=a;i<b;i++)
  7. #define print(a) printf("%d\n",a)
  8. #define pb push_back
  9. #define nl printf("\n");
  10. #define inf INT_MAX
  11. typedef long long int lli;
  12. typedef pair<int,int> ii;
  13.  
  14. bool visited[r5];
  15. vector<int> adj[r5];
  16.  
  17. void dfs(int v){
  18. visited[v]=true;
  19. vector<int>::iterator it;
  20. for(it=adj[v].begin();it!=adj[v].end();it++){
  21. if(!visited[*it])
  22. dfs(*it);
  23. }
  24. }
  25.  
  26. int main(){
  27. int t;
  28. scan(t);
  29. while(t--){
  30. int i,n,m;
  31. f(i,0,r5){
  32. adj[i].clear();
  33. visited[i]=false;
  34. }
  35. scan(n);
  36. scan(m);
  37. int x,y;
  38. f(i,0,m){
  39. scan(x);
  40. scan(y);
  41. adj[x].push_back(y);
  42. adj[y].push_back(x);
  43. }
  44. int ans=0;
  45. f(i,1,n+1){
  46. if(!visited[i]){
  47. ans++;
  48. dfs(i);
  49. }
  50. }
  51. print(ans);
  52. }
  53. return 0;
  54. }
Success #stdin #stdout 0s 4544KB
stdin
1
3 2
1 2
2 3
stdout
1