HDU 1856 More is better 并查集 路径压缩

以太网以及车载以太网概述 千兆网线和百兆网线区别 1、所谓的百兆网线其实就是 五类线 和超五类线 ,而千兆网线主要是指六类线 和超六类线 ,另外还有古老的十兆网线也就是指 四类线 和 三类线 等。 2、在使用上,其实千兆网线和百兆网线是没什么区别的,千兆网线完全兼容百兆网络。 3、百兆网线的线芯是8芯,但上传和下载只用到了其中的4根,而千兆网线需要完全用到8根。 4、另外在线芯的排布上,千兆网线的线芯中间有个十字形的塑料架,用来把四组8芯的线分开,这个百兆网线是没有的, 5、所有的网线在外皮上都有种类标识,CAT5 CAT 阅读详情

做了并查集一段时间了。个人觉得利用并查集解题的套路其实很单调。

1、开一个数组记录各个节点的父节点,初始化

2、给出一对关联的数据,查找

3、根据查找结果如果根不属于同一集合则合并

当然,还可以优化。主要是在查找利用递归,使得在回溯时各个节点的父节点都是树的根节点。下次查找就可以

降低查找长度。其次,可以利用一个数组记录每棵树的高度。在合并时将矮树链接到高树上,使得新生成的树尽

量矮。

大家可以看看这两个链接:点击打开链接 和点击打开链接

 

我做这题的想法:

1、在合并两棵树时一般要求是根节点不相同才合并。其实,我觉得这个要求也是可以根据实际情况来看的。

如果只是比较单纯的并查集问题可以相同也合并,合并前后也没有啥变化。但是比如本题就必须是不同才合并。

相同也合并会对num[]造成影响。

2、注释掉的代码是用来在合并时将矮树链接到高树上用的。可是空间不够了。

大家在看代码时可能会发现这样一个问题,以a为根的树链接到以b为根的树上后,height[a]应该赋值为0。代码中

并没有这样做。因为不处理也不影响。为啥呢?因为a已经不再是根了。即使下次要处理一组关联的边(a,c)时,也

是用a的根和c链接。也就是说a不会再成为根,height[a]也不会再被用了。

 

AC代码:

#include<iostream>
using namespace std;

const int MAX=10000001;
int father[MAX];  //father[i]存放i的父节点
int num[MAX];    //num[i]以i为根的节点数
//int height[MAX];  //树的高度

void initial()   //初始化
{
	for(int i=0;i<MAX;i++)
	{
		father[i]=i;
		num[i]=1;   //每个i都是根节点,节点数都为1
		//height[i]=1;
	}
}

int find(int a)    //查找
{
	if(a==father[a])
		return a;	
	return father[a]=find(father[a]);  //路径压缩
}

void combine(int a,int b)   //不在同一集合就合并
{
	int tmpa=find(a);
	int tmpb=find(b);

	if(tmpa!=tmpb)
	{
		father[tmpa]=tmpb;
		num[tmpb]+=num[tmpa];
		num[tmpa]=0;

		/*
		if(height[tmpb]>height[tmpa])  //每次合并都使树的高度尽量小
		{
			father[tmpa]=tmpb;
			num[tmpb]+=num[tmpa];
			num[tmpa]=0;
		}
		else
		{
			father[tmpb]=tmpa;
			num[tmpa]+=num[tmpb];
			num[tmpb]=0;

			if(height[tmpa]==height[tmpb])
				height[tmpa]++;
		}
		*/
	}
}

int maxNode()   //连通分量最大节点数
{
	int tmp=0;
	for(int i=0;i<MAX;i++)
	{
		if(num[i]>tmp)
			tmp=num[i];
	}

	return tmp;
}

void preDeal(int n)   //预处理
{
	int a,b;

    for(int i=0;i<n;i++)
	{
		scanf("%d%d",&a,&b);
		combine(a,b);
	}
}

int main()
{
	int n;

	while(scanf("%d",&n)==1)
	{
		initial();
		preDeal(n);

		printf("%d\n",maxNode());
	}

	return 0;
}
使用 MATLAB/Simulink 构建一个 压水堆核电机组的反应堆控制与功率调节系统 仿真模型 本文通过Simulink构建压水堆核电机组的反应堆控制与功率调节模型,详细介绍了建模流程:从中子点动力学核心方程、反应性反馈模型(控制棒、多普勒和慢化剂效应)、一回路热工模型到完整的闭环控制系统。教程包含系统结构设计、参数设置、模块连接方法,以及典型负荷变化场景的仿真分析,帮助读者理解核反应堆动态特性和控制原理。同时提供了进阶建模建议,如分布参数模型和先进控制策略的应用。该模型为教学简化版,强调核能系统的机理建模与Simulink实现方法,适合核工程与控制领域的学习者参考实践。 阅读详情

相关推荐

别再死记硬背参数了!用ADS手把手教你仿真一个4GHz镜像抑制混频器(附完整工程文件)

本文详细解析了4GHz镜像抑制混频器的ADS仿真全流程,从理论到实践,涵盖混频器设计基础、ADS工程搭建、二极管选型、非线性仿真及性能优化。通过实战案例,帮助工程师掌握关键参数平衡与调试技巧,提升射频电路设计效率。

weixin_42552716的博客 339

hdu1856 More is better(并查集,运用了压缩路径)

Problem Description Mr Wang wants some boys to help him with a project. Because the project is rather complex, the more boys come, the better it will be. Of course there are certain requirements.

青山绿水之辈 专栏 1094

Windows游戏多开检测实战:5种技术原理与破解方法详解(附C++代码)

本文深入解析了Windows游戏多开检测的5种核心技术原理,包括进程枚举、互斥体、信号量、窗口及文件映射检测,并详细探讨了对应的破解方法。通过分析这些基于进程和内核对象的攻防机制,为开发者与逆向爱好者提供了从底层理解Windows系统进程管理的实战视角,并附有核心C++代码示例。

weixin_29315091的博客 243

HDU 1856 More is better(并查集路径压缩+剪枝优化+暴力枚举)

http://acm.hdu.edu.cn/showproblem.php?pid=1856 More is betterTime Limit: 5000/1000 MS (Java/Others) Memory Limit: 327680/102400 K (Java/Others) Total Submission(s): 23033 Accepted Submission(s)

linlinsong—ACM界蒟水! 509

MavLink协议入门

MAVLink是一个非常轻量化的开源的消息协议,用于无人机之间的通信以及无人机机载设备之间的通信。

ffffffeiyu的博客 2478

YOLOv8优化:独家创新(SC_C_Detect)检测头结构创新,实现涨点 | 检测头新颖创新系列

独家创新(SC_C_Detect)检测头结构创新,适合科研创新度十足,强烈推荐

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 4877

HDU——1856 More is better(并查集模板题)

原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1856 测试样例: 样本输入 4 1 2 3 4 5 6 1 6 4 1 2 3 4 5 6 7 8 样本输出 4 2 题意: 你会有1000万个男孩,你也会有这些男孩之间的关系,你想要留住最多的男孩(留下的男孩直接或间接是朋友关系),问最多是多少? 解题思路: 此题是一道并查集模板题,我们先要合并成多个集合,再找出集合中最大的值即可,这个过程中我们要用nums数组来存储每个状态的男孩数,最后遍历一遍n

pursuit的博客 506

[RAM] DRAM 导论:DDR4 | DDR5 | LPDDR5 | GDRR6 | HBM 应运而生

有数据的地方就有存储, 内存是谁都离不开的产品。而动态随机存取存储器(DRAM)作为一种常见的内存。本博客将介绍DRAM的基本概念、工作原理、优缺点以及应用领域等方面。

串起点滴 3921

HDU1856(More is better)

题目传送门 解题思路: 并查集入门题,大概意思就是求最大的集合有多少个人,并查集按照按照集合大小合并就可以。 坑点:题目给的数据范围有点大,小心一点不然会超内存或者超时间。记得做路径压缩,输入用scanf,cin会T到飞起,还有就是n = 0的时候,代表没有给定的两个朋友,说明只有他一个人,那么n = 0的时候最大集合就是 1 。 #include <iostream> #includ...

weixin_43808717的博客 288

多物理场耦合仿真-主题032-电磁-流体耦合

电磁-流体耦合,即磁流体动力学(MHD, Magnetohydrodynamics),是研究导电流体在电磁场中运动规律的学科,涉及电磁场与流体力学的深度耦合。本主题系统阐述磁流体动力学的基本理论、控制方程和数值方法。首先介绍MHD的基本概念和物理基础,包括导电流体的性质、电磁场基本方程;然后详细推导MHD控制方程组,包括连续性方程、动量方程、能量方程和电磁场方程;接着讨论MHD流动的特征参数,如Hartmann数、磁雷诺数、相互作用参数等;最后通过六个典型工程案例展示MHD分析的实际应用,包括电磁泵、磁流体

2401_87715305的博客 427

TPAMI 2024 | 重新思考多焦点图像融合中客观评价指标的有效性:一种基于统计的方法

作为一种延长光学镜头景深(DOF)的有效技术,多焦点图像融合最近成为图像处理社区的一个活跃话题。然而,该领域仍然存在一个未解决的主要问题,即缺乏选择客观评价指标的通用标准。因此,不同研究中使用的指标往往差异显著,导致难以实现公正的评估。为了解决这个问题,本文提出了一种基于统计的方法来验证多焦点图像融合中客观指标的有效性。核心思想是采用统计相关性度量来评估某个融合指标与一些流行的全参考图像质量评估模型之间的性能一致性。

小白学视觉 329

HDU 1856-More is better

More is better Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 327680/102400 K (Java/Others) Total Submission(s): 29688    Accepted Submission(s): 10552 题目链接:点击打开链接 Problem Des

别止的博客 309

【C2000系列DSP的Bootloader详解】实现过程、流程图与示例代码

C2000 Bootloader 的核心逻辑可概括为 “初始化→选模式→加载程序→校验→跳转” 五步。对于小白来说,无需纠结底层寄存器配置(驱动库已封装),重点理解 “启动流程” 和 “数据传输 + 校验” 的核心思想即可。 通过本文的流程图和示例代码,相信你已经掌握了 C2000 Bootloader 的核心原理。实际开发中,可基于 TI 提供的 Bootloader 示例(C2000Ware 中自带)进行修改,快速适配自己的硬件和应用场景。

昔时扬尘处 376

HDU 1856 More is better (并查集)

并查集

NeWnIx 560

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

HDU 1856 More is better

Problem Description Mr Wang wants some boys to help him with a project. Because the project is rather complex, the more boys come, the better it will be. Of course there are certain requirements. Mr Wang selected a room big enough to hold the boys. The boy

qq_27168967的博客 140

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

HDU 1856 More is better (并查集)

题意:   给你两个数代表这两个人是朋友,朋友的朋友还是朋友~~,问这些人组成的集合里面人最多的是多少。。。 思路:   属于并查集了,我用的是带路径压缩的,一个集合里面所有元素(除了根节点)的父节点都是根节点,最后统计下哪个根节点出现的次数最多就OK了~~ 1 #include <iostream> 2 #include <cstdio> ...

dimaishu7553的博客 110

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

hdu 1856 More is better

More is betterTime Limit: 5000/1000 MS (Java/Others)    Memory Limit: 327680/102400 K (Java/Others)Total Submission(s): 31385    Accepted Submission(s): 11126Problem DescriptionMr Wang wants some boys...

路途遥远,初心难忘,道阻且长,愿君走出半生,归来仍是少年 304

【并查集】hdu 1856 More is better

More is better Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 327680/102400 K (Java/Others) Total Submission(s): 25449    Accepted Submission(s): 9132 Problem Description Mr Wang

Hi_jiaxinwei的博客 316

【HDU 1856 More is better 】

More is betterProblem Description Mr Wang wants some boys to help him with a project. Because the project is rather complex, the more boys come, the better it will be. Of course there are certain requ

楚江枫 386

【HDU1856】More is better(并查集基础题)

裸并查集,但有二坑: 1.需要路径压缩,不写的话会TLE 2.根据题目大意,如果0组男孩合作的话,应该最大的子集元素数目为1.所以res初始化为1即可。 1 #include <iostream> 2 #include <cstring> 3 #include <cstdio> 4 #include <cstdlib...

banxuanliu0005的博客 159

HDU - 1856 More is better(并查集)

Description 给定多个无向图,给出这多个无向图中元素个数最多的一个是多少? Input 输入一个n (0 ≤ n ≤ 100 000) - 后n行中每一行有一个A和B(A ≠ B, 1 ≤ A, B ≤ 10000000),代表A与B联通。 Output 给出节点数最多是多少? Sample Input 4 1 2 3 4 5 6 1 6 4 1 2 3 4 5 6 7 8 Soluti...

sunlanchang的博客 375

More is better HDU - 1856

Mr Wang wants some boys to help him with a project. Because the project is rather complex,the more boys come, the better it will be. Of course there are certain requirements. Mr Wang selected a room big enough to hold the boys. The boy who are not been ch.

beloved_yu的博客 328

More is better--hdu1856(并查集)

More is better Time Limit: 5000/1000 MS (Java/Others)Memory Limit: 327680/102400 K (Java/Others)Total Submission(s): 18707Accepted Submission(s): 6873 Problem Description Mr Wang wan...

aoao2005的博客 109

【并查集】 hdu 1856 More is better

#include #include #include #include #include using namespace std; int father[10000005], cnt[10000005]; int fi(int x) { if(x != father[x]) father[x] = fi(father[x]); return fathe

Reluxer 462

hdu 1856 more is better

题目 Mr Wang wants some boys to help him with a project. Because the project is rather complex, the more boys come, the better it will be. Of course there are certain requirements. Mr Wang selected a room big enough to hold the boys. The boy who are not bee

QYQHxyh的博客 240
上一篇: HDU 1054 Strategic Game 二分图 最小顶点覆盖
下一篇: HDU1045 Fire Net 暴力搜索DFS
lulipeng_cpp
博客等级 码龄15年 169粉丝 130原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值