title: ACM-NEFUOJ-P210畅通工程并查集
    tags:

    • ACM
    • 并查集
      abbrlink: a630980b
      date: 2020-12-19 15:59:29

    题目:我已经明示到这个程度了你还不用并查集?

    1. #include<bits/stdc++.h>
    2. using namespace std;
    3. const int MAXN=1010;
    4. int F[MAXN];
    5. int GetFather(int x)
    6. {
    7. return F[x]==x?x:F[x]=GetFather(F[x]);
    8. }
    9. void Union(int a,int b)
    10. {
    11. int t1=GetFather(a);
    12. int t2=GetFather(b);
    13. if(t1!=t2) F[t1]=t2;
    14. }
    15. int main()
    16. {
    17. int n,m;
    18. while(cin>>n&&n)
    19. {
    20. cin>>m;
    21. for(int i=1;i<=n;i++) F[i]=i;
    22. int a,b;
    23. while(m--)
    24. {
    25. cin>>a>>b;
    26. Union(a,b);
    27. }
    28. int res=0;
    29. for(int i=1;i<=n;i++)
    30. if(F[i]==i) res++;
    31. printf("%d\n",res-1);
    32. }
    33. return 0;
    34. }