并查集

#include <cstdio>
int UFS[1000] = {0};
void Initiate( int N )
{
    for( int i = 0; i < N; ++i )
        UFS[i] = i;
}
/*
int Find( int k )
{
    while( UFS[k] != k )
        k = UFS[k];
    return k;
}*/
int Find( int k )//路径压缩查找根
{
    if( UFS[k] == k )
        return k;
    return UFS[k] = Find( UFS[k] );
}
int Union( int k1, int k2 )
{
    int k1F = Find( k1 ), k2F = Find( k2 );
    if( k1F != k2F )
        UFS[k1F] = k2F;
}
int main()
{
    int N;
    scanf("%d", &N);
    Initiate( N );
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值