zoukankan      html  css  js  c++  java
  • poj 1611 (并查集)

    #include<stdio.h>
    int f[30005];
    int find(int x)
    {
    if(x!=f[x])f[x]=find(f[x]);
    return f[x];
    }
    int main()
    {
    int n,m,i,j,k,a,b;
    while(scanf("%d%d",&n,&m),m+n)
    {
    for(i=0;i<=n;i++)f[i]=i;
    for(i=1;i<=m;i++)
    {
    scanf("%d",&k);


    scanf("%d",&a);
    int x=find(a);
    for(j=2;j<=k;j++)
    {
    scanf("%d",&b);
    int y=find(b);
    if(x!=y)
    {
    f[y]=x;
    }
    }

    }
    int x=find(0);
    int ans=0;
    for(i=0;i<n;i++)
    {
    int y=find(i);
    if(y==x)ans++;
    }
    printf("%d\n",ans);

    }
    }
  • 相关阅读:
    会话技术
    Http
    tomcat
    xml
    javascript
    css
    Html
    递归
    二叉树的相关复习
    vim学习
  • 原文地址:https://www.cnblogs.com/acSzz/p/2398702.html
Copyright © 2011-2022 走看看