Advertisement
Guest User

Untitled

a guest
Jul 28th, 2016
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.92 KB | None | 0 0
  1. //My first dfs submission Status:AC
  2. #include"bits/stdc++.h"
  3. using namespace std;
  4. #define ll long long int
  5. #define pb push_back
  6. #define mp make_pair
  7. #define mod 1000000007
  8. typedef pair<int,int> pi;
  9. typedef vector<int> vi;
  10.  
  11. vi adjlist[200010];
  12. bool vis[200010];
  13. ll size=0;
  14.  
  15. int dfs(int n)
  16. {
  17. vis[n]=true;
  18. size++;
  19. for(int i=0;i<adjlist[n].size();i++)
  20. if(!vis[adjlist[n][i]]) dfs(adjlist[n][i]);
  21. }
  22. main()
  23. {
  24. ios_base::sync_with_stdio(0);
  25. int t,n,m;
  26. cin>>t;
  27. while(t--)
  28. {
  29. memset(vis,0,sizeof(vis));
  30. cin>>n>>m;
  31. for(int i=0;i<n;i++) adjlist[i].clear();
  32. for(int i=0;i<m;i++)
  33. {
  34. int x,y;
  35. cin>>x>>y;
  36. x--;y--;
  37. adjlist[x].pb(y);
  38. adjlist[y].pb(x);
  39. }
  40. ll num=1;
  41. int ans=0;
  42. for(int i=0;i<n;i++)
  43. {
  44. if(!vis[i])
  45. {
  46. size=0;
  47. ans++;
  48. dfs(i);
  49. num*=size;
  50. if(num>=mod) num%=mod;
  51. }
  52. }
  53. cout<<ans<<" "<<num<<"\n";
  54. }
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement