More is better

Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 327680/102400 K (Java/Others)
Total Submission(s): 24825    Accepted Submission(s): 8911

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 who are not been chosen has to leave the room immediately. There are 10000000 boys in the room numbered from 1 to 10000000 at the very beginning. After Mr Wang's selection any two of them who are still in this room should be friends (direct or indirect), or there is only one boy left. Given all the direct friend-pairs, you should decide the best way.

 
Input
The first line of the input contains an integer n (0 ≤ n ≤ 100 000) - the number of direct friend-pairs. The following n lines each contains a pair of numbers A and B separated by a single space that suggests A and B are direct friends. (A ≠ B, 1 ≤ A, B ≤ 10000000)
 
Output
The output in one line contains exactly one integer equals to the maximum number of boys Mr Wang may keep. 
 
Sample Input
4
1 2
3 4
5 6
1 6
4
1 2
3 4
5 6
7 8
 
Sample Output
4 2

Hint

A and B are friends(direct or indirect), B and C are friends(direct or indirect), then A and C are also friends(indirect). In the first sample {1,2,5,6} is the result. In the second sample {1,2},{3,4},{5,6},{7,8} are four kinds of answers.

 
题目大意:就是找最大的集合,输出包含个数。
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1856
 
代码:
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
using namespace std;
const
int MAX=;
int
f[MAX],v[MAX];
int
find(int n)
{

if
(n!=f[n])
f[n]=find(f[n]);
return
f[n];
}
int main()
{
int n;
while
(cin>>n)
{

for
(int i=;i<MAX;i++)
{
f[i]=i;v[i]=;}
int
a,b;
int
t=;
for
(int i=;i<n;i++)
{
scanf("%d%d",&a,&b);
a=find(a);
b=find(b);
if
(a!=b)
{
f[a]=b;v[b]+=v[a];t=max(t,v[b]);}
}

cout<<t<<endl;
}

return
;
}
 
 

最新文章

  1. PHP开发知识
  2. 微信公众平台SDK
  3. 团队项目作业第二项:利用NABCD模型进行竞争性需求分析
  4. android ViewPaper高度自适应
  5. WinForm MessageBox 提示对话框
  6. C语言学习中容易模糊的一些概念
  7. AsyncQueryHandler处理数据
  8. HDU 4931 Happy Three Friends(水)
  9. js-学习方法之3
  10. C#代码生成工具:文本模板初体验 使用T4批量修改实体框架(Entity Framework)的类名
  11. pop弹簧动画实现
  12. STS启动springboot项目,加载不了resources下的配置文件的问题
  13. Elinks介绍
  14. SICP 习题 (1.43)解题总结
  15. 使用open live writer客户端写博客zz
  16. XlsToOra
  17. Summary: 书架问题
  18. Python学习记录day8
  19. static_cast、dynamic_cast、reinterpret_cast、和const_cast
  20. POJ 1218 THE DRUNK JAILER(类开灯问题,完全平方数)

热门文章

  1. Node.js入门:Node.js&amp;NPM的安装与配置
  2. Atitit paip.对象方法的实现原理与本质.txt
  3. java学习笔记--this 关键字的理解
  4. js 编码、解码与asp.net 编码、解码
  5. Android 常见Crash Log汇总
  6. css_01之基础属性、选择器
  7. 使用node+vue.js实现SPA应用,nodevue.jsspa应用
  8. 自定义Image自动切换图像控件
  9. 开源项目IPProxys的使用
  10. Js控制显示、隐藏文本框中的密码