zoukankan      html  css  js  c++  java
  • 并查集模板。。。。

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    int n,m,ans,p[1010];
    void Make(int *a){for(int i=1;i<=n;i++)p[i] = i;}
    int Find(int x){return x==p[x]?x:(p[x]=Find(p[x]));}
    void Union(int x,int y){p[Find(x)]=Find(y); }

    int main(){
        while (scanf("%d %d", &n, &m) != EOF && n){
            Make(p);
            while(m--){
                int x,y;
                scanf("%d%d",&x,&y);
                Union(x,y);
            }
            ans=0;
            for(int i=1;i<=n;i++)
                if(Find(i)==i)ans++;
            printf("%d\n",--ans);
        }
        return 0;
    }

  • 相关阅读:
    oracle中文乱码问题
    并发登录查询
    AJAX 笔记
    jQuery笔记
    js BOM 笔记
    HTML DOM笔记
    JS函数笔记
    js笔记
    json笔记
    css3笔记
  • 原文地址:https://www.cnblogs.com/xuwanghu/p/3036420.html
Copyright © 2011-2022 走看看