Advertisement
Saleh127

UVA 11504

Mar 11th, 2021
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.15 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4. #define test int t; cin>>t; for(int cs=1;cs<=t;cs++)
  5. bool v[100005];
  6. vector<ll>g[100005];
  7. vector<ll>topsort;
  8.  
  9. void dfs(ll in)
  10. {
  11. if(v[in]) return;
  12. v[in]=1;
  13. for(ll i=0;i<g[in].size();i++)
  14. {
  15. if(v[g[in][i]]==0)
  16. {
  17. dfs(g[in][i]);
  18. }
  19. }
  20. topsort.push_back(in);
  21. }
  22.  
  23. int main()
  24. {
  25. ios_base::sync_with_stdio(0);
  26. cin.tie(0);cout.tie(0);
  27.  
  28. test
  29. {
  30.  
  31. ll n,m,i,j,k,l=0;
  32. cin>>n>>m;
  33.  
  34.  
  35. for(i=0;i<n+5;i++)
  36. {
  37. g[i].clear();
  38. v[i]=0;
  39. }
  40. topsort.clear();
  41.  
  42. for(i=0;i<m;i++)
  43. {
  44. ll a,b;
  45. cin>>a>>b;
  46. g[a].push_back(b);
  47. }
  48. for(i=1;i<=n;i++)
  49. {
  50. if(v[i]==0)
  51. {
  52. dfs(i);
  53. }
  54. }
  55. memset(v,0,sizeof(v));
  56. for(i=topsort.size()-1;i>=0;i--)
  57. {
  58. if(v[topsort[i]]==0)
  59. {
  60. l++;
  61. dfs(topsort[i]);
  62. }
  63. }
  64. cout<<l<<endl;
  65.  
  66. }
  67.  
  68.  
  69. return 0;
  70. }
  71.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement