并查集模板

来源:互联网 发布:人工智能观后感300字 编辑:程序博客网 时间:2024/05/22 11:46

 How Many Tables

 
#include<stdio.h>int per[1001];int find(int x){    int r=x;    while(r!=per[r])        r=per[r];    int i=x,j;    while(i!=r)    {        j=per[i];        per[i]=r;        i=j;    }    return r;}int main(){    int z,n,m,a,b,i,ans;    scanf("%d",&z);    while(z--)    {        scanf("%d%d",&n,&m);        ans=n;        for(i=1;i<=n;i++)            per[i]=i;        while(m--)        {            scanf("%d%d",&a,&b);            int fx=find(a);            int fy=find(b);            if(fx!=fy)            {                per[fy]=fx;                ans--;            }        }        printf("%d\n",ans);    }}


0 0
原创粉丝点击