并查集的经典两个函数模版:(之前写的模版有错)

int set[10000001],c[10000001];
void mst()
{
    for(int i=1;i<10000001;i++)
    {
        set[i]=i;
        c[i]=0;
    }
}

int find(int x)
{
        if(x!=set[x])
            set[x]=find(set[x]);
        return set[x];
}
void memg(int x,int y)
{
        x=find(x);
        y=find(y);
        if(x==y)
            return ;
        else
             set[x]=y;
}

posted on 2012-08-03 23:10  xinmenghuairi  阅读(134)  评论(0编辑  收藏  举报