搜索
编程论坛
→
开发语言
→
C++论坛
→
『 C++教室 』
→ 并查集模板,大家看一下
标题:
并查集模板,大家看一下
只看楼主
Jason_
来 自:浙江台州
等 级:
论坛游民
帖 子:88
专家分:66
注 册:2019-7-14
结帖率:
66.67%
楼主
已结贴
√
问题点数:5 回复次数:1
并查集模板,大家看一下
题目描述
有n个人(n<100)m对关系(m<1000),问有多少个家族,和最大一个家族的人数
输入
第一行二个整数n和m分别表示人数和关系数
接下去m行每行2个整数x和y表示x和y是同一个家族的成员。
输出
2个整数,有几个家族和最大家族的人数
样例输入
5 3
1 2
2 3
4 5
样例输出
2 3
提示
有2个家族,1 2 3 是一个家族 4 5 是另外一个家族
搜索更多相关主题的帖子:
整数
表示
输出
模板
输入
2019-12-21 23:09
rjsp
等 级:
版主
威 望:
507
帖 子:8890
专家分:53117
注 册:2011-1-18
第
2
楼
得分:5
以样例为例
a. 先建一个数组 a[] = { 0, 1, 2, 3, 4, 5 }
读取到“1 2”时,就 f[2] = 1,也就是 f[大值] = 小值
读取到“2 3”时,就 f[3] = 2,也就是 f[大值] = 小值
读取到“4 5”时,就 f[5] = 4,也就是 f[大值] = 小值
最终得到 a[] = { 0, 1, 1, 2, 4, 4 }
其中 a[1]==1, a[4]==4,所以一共有
2
个家族
b. 再建一个数组 b[] = { 0, 0, 0, 0, 0, 0 }
从 a[] = { 0, 1, 1, 2, 4, 4 } 的后面向前遍历
依次执行 b[f[5]] = b[5]+1、 b[f[4]] = b[4]+1、……
最终得到 b[] = { 0 3 1 0 2 0 }
其中最大值是
3
。
以上算法没验证过,以上过程全手打没验证过,仅供参考
2019-12-22 11:56
2
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-498543-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.294478 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved