SSL1662 家庭问题(并查集)
来源:互联网 发布:ts合并软件 安卓版 编辑:程序博客网 时间:2024/06/10 05:06
家庭问题
Description
有n个人,编号为1,2,……n,另外还知道存在K个关系。一个关系的表达为二元组(α,β)形式,表示α,β为同一家庭的成员。
问题:当n,k和k个关系给出之后,求出其中共有多少个家庭、最大的家庭中有多少人?
例如:
n=6,k=3,三个关系为(1,2),(1,3),(4,5)
此时,6个人组成三个家庭,即:{1,2,3}为一个家庭,{4,5}为一个家庭,{6}单独为一个家庭,第一个家庭的人数为最多。
Input
文件的第一行为n,k二个整数(1≤n≤100)(用空格分隔)
接下来的k行,每行二个整数(用空格分隔)表示关系
Output
二个整数(分别表示家庭个数和最大家庭人数)
分析:做一下并查集然后统计。
代码
const
maxn=100;
var
a,b:array[0..maxn] of longint;
f:array[0..maxn] of boolean;
i,n,k,ans,max,x,y:longint;
function find(x:longint):longint;
begin
if a[x]=x then exit(x);
a[x]:=find(a[x]);
exit(a[x]);
end;
begin
readln(n,k);
for i:=1 to n do
a[i]:=i;
for i:=1 to k do
begin
readln(x,y);
a[find(x)]:=find(y);
end;
for i:=1 to n do
begin
if not f[find(i)] then
begin
inc(ans);
f[find(i)]:=true;
end;
inc(b[find(i)]);
end;
for i:=1 to n do
if b[i]>max then max:=b[i];
writeln(ans,' ',max);
end.
- SSL1662 家庭问题(并查集)
- SSL 1662_家庭问题_并查集
- 家庭房产(并查集)
- L2-007. 家庭房产【并查集】
- PATL2-007. 家庭房产-并查集
- L2-007. 家庭房产-并查集
- PAT L2-007. 家庭房产 (并查集)
- PAT L2-007. 家庭房产 (并查集)
- PAT L2-007. 家庭房产(并查集)
- PAT L2-007. 家庭房产(并查集)
- PAT L2-007. 家庭房产(并查集)
- PATL2-007. 家庭房产详解(并查集)
- GPLT L2-007. 家庭房产【并查集】
- L2-007. 家庭房产(并查集+结构体记录)
- pat L2-007. 家庭房产(并查集)
- L2-007. 家庭房产 (并查集的简易应用)
- L2-007. 家庭房产 处理集合体的问题 并查集经典应用 或 联通块的方法
- 并查集问题
- JavaScript自适应调整文字大小
- The project you are trying to remove is currently deployed to a running application server.解决方案
- 霍夫曼编码解码
- 没有块级作用域
- java调用cmd执行maven命令
- SSL1662 家庭问题(并查集)
- html总结
- dataframe 使用心得记录
- JRE 与JDK的区别
- C#中的协变性与逆变性
- 四柱汉诺塔
- 原生DOM接口学习之实现表格的排序
- 字符编码:ASCII,Unicode和UTF-8
- JavaScript数组forEach循环