HDOJ 1856 More is better
转自:wutianqi http://www.wutianqi.com/?p=1069
tag:并查集
#include <iostream>
using namespace std; #define MAX 10000001 // father[x]表示x的父节点
int father[MAX];
// rank[x]表示x的秩
int rank[MAX]; // 初始化
void Make_Set(int n)
{
for(int i=; i<=n; ++i)
{
father[i] = i;
rank[i] = ;
}
} // 查找
int Find_Set(int x)
{
if(x != father[x])
return Find_Set(father[x]);
return x;
} // 合并
void Union(int x, int y)
{
x = Find_Set(x);
y = Find_Set(y);
if(x == y) // x,y在同一个集合
return;
if(rank[x] > rank[y])
{
father[y] = x;
rank[x] += rank[y];
}
else if(rank[x] < rank[y])
{
father[x] = y;
rank[y] += rank[x];
}
else
{
father[x] = y;
//rank[y]++;
rank[y] += rank[x];
} } int main()
{
//freopen("input.txt", "r", stdin);
int a, b;
int nNum;
while(scanf("%d", &nNum) != EOF)
{
Make_Set(MAX);
if(nNum==)
{
printf("1\n");
continue;
}
for(int i=; i<nNum; ++i)
{
scanf("%d %d", &a, &b);
Union(a, b);
//printf("rank[%d]=%d rank[%d]=%d\n", a, rank[a], b, rank[b]);
}
int _max=;
for(int i=; i<=MAX; ++i)
//printf("%d ", rank[i]);
if(_max < rank[i])
_max = rank[i];
printf("%d\n", _max);
}
return ;
}
HDOJ 1856 More is better的更多相关文章
- 并查集(HDOJ 1856)
并查集 英文:Disjoint Set,即“不相交集合” 将编号分别为1…N的N个对象划分为不相交集合, 在每个集合中,选择其中某个元素代表所在集合. 常见两种操作: n 合并两个集合 ...
- HDOJ 1856
#include<cstdio> #include<cstdlib> typedef struct ufse *ufset; struct ufse { ]; ]; }UFS; ...
- hdoj 1856 More is better【求树的节点数】
More is better Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 327680/102400 K (Java/Others) ...
- Hdoj 1856.More is better 题解
Problem Description Mr Wang wants some boys to help him with a project. Because the project is rathe ...
- 杭电hdoj题目分类
HDOJ 题目分类 //分类不是绝对的 //"*" 表示好题,需要多次回味 //"?"表示结论是正确的,但还停留在模块阶 段,需要理解,证明. //简单题看到就 ...
- HDOJ 题目分类
HDOJ 题目分类 /* * 一:简单题 */ 1000: 入门用:1001: 用高斯求和公式要防溢出1004:1012:1013: 对9取余好了1017:1021:1027: ...
- HDOJ 1009. Fat Mouse' Trade 贪心 结构体排序
FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- HDOJ 2317. Nasty Hacks 模拟水题
Nasty Hacks Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tota ...
- HDOJ 1326. Box of Bricks 纯水题
Box of Bricks Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...
随机推荐
- struts2的包和命名空间
struts2提供了命名空间的功能,主要是为了处理同一个WEB应用中包含同名Action的情形.struts2以命名空间的方式来管理Action,同一个命名空间里不能有同名的Action,不同的命名空 ...
- [GeekBand] C++ 高级编程技术 (1)
一.类型转换 class Fraction { public: explicit Fraction(int num, int den=1) : m_numerator(num), m_denomina ...
- 使用inotify检测linux目录内文件变化
#include <unistd.h> #include <sys/inotify.h> #include <stdio.h> #include <error ...
- <邮件服务postfix+mysql>MAIL第二篇
环境:本服务是建立在第一篇的基础之上的,最好搭建好第一篇 玩此服务的前提是你的系统装好了msql和postfix服务. Postfix+mysql主要是把邮件服务的发与mysql结合使用.当然mysq ...
- ADO.NET笔记——使用DataSet返回数据
相关知识: DataSet和DataAdapter的内部结构: DataSet通过DataAdapter从数据库中获取数据 DataSet对象内部包括一个集合(Tables),也就是可以拥有多个表(D ...
- 分享:linux下apache服务器的配置和管理
linux下apache服务器的配置和管理. 一.两个重要目录: Apache有两个重要的目录:1.配置目录/etc/httpd/conf:2.文档目录/var/www: 二.两种配置模式: Apac ...
- Python学习第五天
复习内容: · 迭代器&生成器 · 装饰器 · Json & pickle 数据序列化 · 软件目录结构规范yi 一.生成器 1. 列表生成式: 2. 生成器的定义:在Pyth ...
- mac eclipse 安装maven,svn插件
Eclipse中m2eclipse插件的安装 Eclipse默认不支持Maven.需要给它添加m2eclipse插件,地址是:http://download.eclipse.org/technolog ...
- ActiveMQ之MessageListener
消息的消费者接收消息可以采用两种方式: 1.consumer.receive()或 consumer.receive(int timeout); 2.注册一个MessageListener. 采用第一 ...
- CentOS安装 pure-ftpd
yum -y install pam-devel cd /usr/local .tar.gz cd pure-ftpd- ./configure --prefix=/usr/local/pure-ft ...