南邮 OJ 1414 家庭问题
来源:互联网 发布:淘宝上库克运动是真么 编辑:程序博客网 时间:2024/05/01 16:51
家庭问题
时间限制(普通/Java) : 1000 MS/ 3000 MS 运行内存限制 : 65536 KByte
总提交 : 139 测试通过 : 61
总提交 : 139 测试通过 : 61
比赛描述
有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}单独为一个家庭,第一个家庭的人数最多。
输入
第一行为n,k二个整数(0≤n≤100)(用空格分隔),接下来的k行,每行二个整数(用空格分隔)表示关系
输出
二个整数(分别表示家庭个数和最大家庭人数)
样例输入
6 3
1 2
1 3
4 5
样例输出
3 3
提示
题目来源
JSOI2010
#include<stdio.h>int a[101],b[101];int getMinIndex(int i){return a[i]==i ? i : a[i]=getMinIndex(a[i]);}int main(){int n,k,i,j;scanf("%d%d",&n,&k);for(i=1; i<=n; i++){a[i] = i;b[i] = 1;}int p, q, maxNum = 1;while(k--){scanf("%d%d",&i,&j);p = getMinIndex(i);q = getMinIndex(j);if(p<q){n--;a[q] = p;b[p] += b[q];if(b[p]>maxNum){maxNum = b[p];}}else if(p>q){n--;a[p] = q;b[q] += b[p];if(b[q]>maxNum){maxNum = b[q];}}}printf("%d %d\n",n,maxNum);}
0 0
- 南邮 OJ 1414 家庭问题
- 家庭问题
- 1662 家庭问题
- 变态暴力家庭过河问题
- 南邮 OJ 1190 约瑟夫问题
- 南邮 OJ 1201 统计数字问题
- 南邮 OJ 1206 输油管道问题
- 南邮 OJ 1207 众数问题
- 南邮 OJ 1308 背包问题
- 南邮 OJ 1569 组合问题
- 南邮 OJ 1571 约瑟夫问题
- 南邮 OJ 1589 开灯问题
- 南邮 OJ 1597 约瑟夫问题
- 南邮 OJ 1626 股票投资问题
- 南邮 OJ 1664 骑士问题
- 南邮 OJ 1736 排序问题
- 南邮 OJ 1797 胜负问题
- 南邮 OJ 2060 数数问题
- Sqlite3中存储类型和数据类型结合文档解析。
- CSU 1030 素数槽
- C#模拟http 发送post或get请求
- Linux开发环境搭建(系统、samba、ssh、nfs、开发板挂载)
- TCP的流量控制与拥塞控制小结
- 南邮 OJ 1414 家庭问题
- 回调函数
- 伸展树复习 (bzoj 1251 序列终结者)
- php 实例说明 socket通信机制
- GRFC (generic rf control)
- AngularJS高级程序设计——互动出版网
- 数据挖掘方法案例介绍
- linux命令-------------------------lsof
- Java中设置session的详细解释