并查集|简单|hdu1213|分圈

主要算法

int f[maxn];

int Find(int x) {
    cout<<"x:"<<x<<endl;
    if(f[x]!=x)
        f[x] = Find(f[x]);
    return f[x];
}

void Union(int root1,int root2) {
    int r1 = Find(root1);
    int r2 = Find(root2);
    if(r1!=r2)
        f[r2] = r1;
    else return;
}

草稿图

有误 最后是33344

题目概述

INPUT

输入T组数据,每组有N人M对关系,有认识关系可分为一组,问最少需要几组

OUTPUT

需要组数

EXAMPLE INPUT

2
5 3
1 2
2 3
4 5

5 1
2 5

EXAMPLE OUTPUT

2
4

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容