美文网首页
再贴一次并查集

再贴一次并查集

作者: 与卿__歌 | 来源:发表于2017-03-27 22:48 被阅读0次

F - The Suspects POJ - 1611

#include<stdio.h>
#include<algorithm>
#include<iostream>
using namespace std;
int pre[30005];
int n,m,a,b;
void unit()
{
    for(int i=0;i<=n;i++)
    pre[i]=i;
}
int find(int x)
{
    if(pre[x]==x)
    return x;
    else
    return find(pre[x]);
}
int Union(int a1,int b1)
{
    int X=find(a1);
    int Y=find(b1);
    if(find(a1)!=find(b1))
    {
        pre[X]=Y; 
    }
}
int main()
{
while(  scanf("%d%d",&n,&m)!=EOF)
{       
if(n==0&&m==0)
return 0;
        unit();
    for(int i=0;i<m;i++)
    {
        int x;
        scanf("%d",&x);
        scanf("%d",&a);
        for(int j=1;j<x;j++)
        {
            scanf("%d",&b);
            Union(a,b);
        }
    }
    int xx;
    xx=find(0);
//  cout<<xx<<endl;
    int cnt=0;
    for(int i=0;i<=n;i++)
    {
        if(xx==find(i))
    //  printf("%d\n",i);
        cnt++;
    }
    printf("%d\n",cnt);
}
} 

相关文章

  • 再贴一次并查集

    F - The Suspects POJ - 1611

  • markdown学习

    #并查集 ##并查集的定义 ##并查集的操作

  • 【算法提高班】并查集

    关于并查集的题目不少,官方给的数据是 30 道(截止 2020-02-20),但是有一些题目虽然官方没有贴并查集标...

  • 【算法提高班】并查集

    关于并查集的题目不少,官方给的数据是 30 道(截止 2020-02-20),但是有一些题目虽然官方没有贴并查集标...

  • 【算法提高班】并查集

    关于并查集的题目不少,官方给的数据是 30 道(截止 2020-02-20),但是有一些题目虽然官方没有贴并查集标...

  • 算法模板(四)并查集

    并查集 路径压缩并查集

  • 并查集入门使用

    本文参考自《算法笔记》并查集篇 并查集的定义 什么是并查集?并查集可以理解为是一种维护数据集合的结构。名字中并查集...

  • 并查集练习

    并查集 参考《算法笔记》 三要素:并,查,集。 并差集与一个算法有关,kruskal算法,就可通过并查集实现。 1...

  • 并查集

    并查集 并查集是什么 并查集是一种用来管理元素分组情况的数据结构,并查集可以高效地进行如下操作: 查询元素a和元素...

  • 数据结构与算法(十二)并查集(Union Find)

    本文主要包括以下内容: 并查集的概念 并查集的操作 并查集的实现和优化Quick FindQuick Union基...

网友评论

      本文标题:再贴一次并查集

      本文链接:https://www.haomeiwen.com/subject/xojdottx.html