模板:并查集

本文详细介绍了并查集算法的基本概念及其实现方式。通过具体的代码示例解释了如何使用并查集来解决寻找集合中元素所属关系的问题。并查集是一种用于处理一些不交集的合并及查询问题的数据结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

思路:1.先让自己是自己的爸爸  

    2.下标从1开始,因为城市一般是从1,没有第0个城市。 

    3.为求统一,一律让大的是小的爸爸,记得swap

(其实也不需要,不swap也能连起来)

const int maxn=1005;
int father[maxn],ans[maxn];

int find(int x){     //查找并认爸爸
    if(x!=father[x])
        father[x]=find(father[x]);
    return father[x];
}
/*int find(int x){  
    return fa[x] != x ? fa[x] = find(fa[x]) : x;  
}*/ 
void Union(int x,int y){   //x的爸爸是y
    int a=find(x);
    int b=find(y);
    if(a==b)
        return;
    father[a]=b;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值