首页 > 其他分享 >2024.08.31

2024.08.31

时间:2024-08-31 16:48:14浏览次数:3  
标签:cnt int 31 查集 个数 2024.08 fa fb

并查集

int p[N]; // 储存祖宗节点
int cnt[N]; // 用于统计集合元素个数
bool flag[N]; // 储存节点是否出现

init函数

void init()
{
    for(int i = 1; i <= N; ++ i)
    {
        p[i] = i;
        cnt[i] = 1;
    }
}

find函数(包含路径压缩)

int find(int x)
{
    if(p[x] != x) p[x] = find(p[x]);
    return p[x];
}

merge函数

void merge(int a, int b)
{
    int fa = a, fb = b;
    if(fa != fb)
    {
        p[fa] = fb;
        // 统计集合内元素个数
        cnt[fb] += cnt[fa];
    }
}

统计集合个数

int fenzhi()
{
    int res = 0;
    for(int i = 1; i <= N; ++ i)
        if(flag[i] && p[i] == i) ++ res; // flag[i] 用于记录元素是否出现
    return res;
}

统计集合内元素个数

// 用cnt[N]记录元素个数,init()初始化赋值为1,merge()合并时需要注意

删除某个顶点

// 可以记录所有操作,删除节点后重新初始化,重新构造并查集

进阶:
带权并查集
拓展域并查集

标签:cnt,int,31,查集,个数,2024.08,fa,fb
From: https://www.cnblogs.com/Frodnx/p/18390083

相关文章

  • 【华为OD机试真题E卷】31、最大社交距离 | 机试真题+思路参考+代码分析(E卷复用)(C语言、
    文章目录一、题目......
  • 2024.8.31杂记
    P1249最大乘积题目描述一个正整数一般可以分为几个互不相同的自然数的和,如\(3=1+2\),\(4=1+3\),\(5=1+4=2+3\),\(6=1+5=2+4\)。现在你的任务是将指定的正整数\(n\)分解成若干个互不相同的自然数(也可以不分解,就是这个数字本身)的和,且使这些自然数的乘积最大。输入格式只一个正整......
  • 2024年8月31日 Python - asycnio
    参考asyncio---异步I/O—Python3.12.4文档asyncio视频教程-bilibili6.2.9. yield表达式—Python3.12.4文档PEP380:委托给子生成器的语法yield介绍yieldx生成一个内容yieldfrom委托给子生成器,yieldfromiterable本质上只是foritemini......
  • 滑动窗口系列(定长滑动窗口长度)8/31
    1.长度为K子数组中的最大和给你一个整数数组 nums 和一个整数 k 。请你从 nums 中满足下述条件的全部子数组中找出最大子数组和:子数组的长度是 k,且子数组中的所有元素 各不相同 题意:在之前题目的基础上添加了一个条件:子数组中的所有元素各不相同。因此在这里使......
  • 2024/08/31 每日一题
    LeetCode3127构造相同颜色的正方形方法1:模拟classSolution{publicbooleancanMakeSquare(char[][]grid){for(inti=0;i<2;i++){for(intj=0;j<2;j++){intcnt=0;//统计黑色数量cnt+=......
  • VBA语言専攻简介0831
    VBA语言専攻简介0831在当今世界,几乎没有任何工作是没有计算机的。有些工作需要定期重复相同的过程,最好将它们自动化。一旦任务自动化,只需单击一个按钮即可运行。VBA是实现自动化工作的最为简单的方式,它不需要其他工具,因为它已经与MicrosoftOffice软件集成。VBA是VisualBasicfor......
  • KubeSphere 社区双周报| 2024.08.16-08.29
    KubeSphere社区双周报主要整理展示新增的贡献者名单和证书、新增的讲师证书以及两周内提交过commit的贡献者,并对近期重要的PR进行解析,同时还包含了线上/线下活动和布道推广等一系列社区动态。本次双周报涵盖时间为:2024.08.16-08.29。贡献者名单新晋KubeSpherecontribu......
  • 信息学奥赛一本通1314:【例3.6】过河卒(Noip2002)
    【题目描述】棋盘上A点有一个过河卒,需要走到目标B点。卒行走的规则:可以向下、或者向右。同时在棋盘上的某一点有一个对方的马(如C点),该马所在的点和所有跳跃一步可达的点称为对方马的控制点,如图3-1中的C点和P1,……,P8,卒不能通过对方马的控制点。棋盘用坐标表示,A点(0,0)、B点(n,......
  • 【力扣】3145.大数组元素的乘积
    题目描述一个非负整数 x 的 强数组 指的是满足元素为2的幂且元素总和为 x 的最短有序数组。下表说明了如何确定 强数组 的示例。可以证明,x 对应的强数组是独一无二的。数字二进制表示强数组100001[1]801000[8]1001010[2,8]1301101[1,4,8]2310111[1,2,4,16]......
  • 2024.08.20 校招 实习 内推 面经
    1、校招|华为智能汽车解决方案BU2025届应届生招聘正式启动!校招|华为智能汽车解决方案BU2025届应届生招聘正式启动!2、校招|行深智能2025校园招聘正式启动(内推)校招|行深智能2025校园招聘正式启动(内推)3、校招|宁德时代2025届全球校园招聘正式启动!校招|宁德......