并查集

并查集时一个很有用的一个算法,其用来处理不相交合并和查询的问题。

有一个blog讲解很详细,推荐给大家:并查集详解

在其中的代码解释较为繁琐,但是很详尽。

我的模板如下:


int fa[10000] ;///在使用前记住还原,一个点的父亲为自身,fa[i] = i ;

int Find(int x)///查找,包含状态压缩
{
    return (fa[x] == x) ? fa[x] : fa[x] = Find(fa[x]) ;
}

void Merge(int x , int y)///合并
{
    int fx = Find(x) , fy = Find(y);
    if(fx != fy) fa[fx] = fy ;
}

后续会加一些例题来进行示例。

菜得不一样,菜出新高度。

例题:

洛谷P1111 修复公路

洛谷P2024 食物链

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值