| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1049 人关注过本帖
标题:并查集模板,大家看一下
只看楼主 加入收藏
Jason_
Rank: 2
来 自:浙江台州
等 级:论坛游民
帖 子: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
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分: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
快速回复:并查集模板,大家看一下
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017168 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved