http://acm.split.hdu.edu.cn/showproblem.php?pid=1856

对于这道题,主要就是让你求出有最多结点的树的树叶;

我们只要利用并查集的知识吧所输入的数据连接成树,然后逐一找出树叶最多的树就可以。利用一个num数组,在最开始的时候每个节点自己是一颗树,num[i]=1;在之后把在同一个父亲结点的num[i]连接起来。

再逐一查找出最大的就可以啦。

思路就是这样啊,可是我的提交上就是wa,心灰意冷啊,啊,啊啊,啊啊啊。我把我的代码贴上面,希望大神们看见帮我改一改。

 #include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
using namespace std;
const int M=;
int fa[M],num[M];
void init(){
for(int i=;i<=M;i++){
fa[i]=i;
num[i]=;
}
}
int fin(int x){
return fa[x]=x?fa[x]:fa[x]=fin(fa[x]);
}
void unin(int x,int y){
int p=fin(x);
int q=fin(y);
if(p!=q){
fa[p]=q;
num[q]+=num[p];
}
}
int main()
{
int n,a,b;
while(~scanf("%d",&n)){
if(n==){
printf("1\n");
continue;
}
int ans=;
init();
for(int i=;i<n;i++){
scanf("%d%d",&a,&b);
if(a>ans)ans=a;
if(b>ans)ans=b;
unin(a,b); }
int maxn=;
for(int i=;i<=ans;i++){
if(num[i]>maxn)
maxn=num[i];
}
cout<<maxn<<endl;
}
return ;
}

下面的这个是我在网上查找的大神的代码,我俩除啦参数之外是一样一样的啊,我的咋就不过呢。。。。。

 #include<stdio.h>
#define N 10000000
int father[N],num[N];
void initial()/*初始化*/
{
int i;
for(i=;i<=N;i++)
{
father[i]=i;
num[i]=;/*开始时数量都为1,根节点为自己*/
}
}
int find(int x) /*寻找根节点*/
{
if(father[x]!=x)
father[x]=find(father[x]);
return father[x];
}
void merge(int a,int b)/*合并a和b*/
{
int p=find(a);
int q=find(b);
if(p!=q)
{
father[p]=q;
num[q]+=num[p];/*合并集合中元素个数*/
}
}
int main()
{
int n,a,b,i,sum,max;
while(~scanf("%d",&n))
{
if(n==)
{
printf("1\n");
continue;
}
max=;
initial(); /*初始化*/
for(i=;i<n;i++)
{
scanf("%d%d",&a,&b);
if(a>max)
max=a;
if(b>max)
max=b;
merge(a,b); /*合并集合*/
}
int Max=;
for(i=;i<=max;i++)
if(num[i]>Max) /*查找最大值*/
Max=num[i];
printf("%d\n",Max);
}
return ;
}

HDU 1856的更多相关文章

  1. 简单并查集 -- HDU 1232 UVALA 3644 HDU 1856

    并查集模板: #include<iostream> using namespace std; ],x,y; ]; //初始化 x 集合 void init(int n) { ; i< ...

  2. HDU 1856 More is better(并查集+离散化)

    题目地址:HDU 1856 水题.因为标号范围太大,而数据数仅仅有10w,所以要先进行离散化.然后就是裸的并查集了. 代码例如以下: #include <iostream> #includ ...

  3. HDU(1856),裸的带权并查集

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1856 题意:朋友圈问题,A和B是朋友,B和C是朋友则A和C也是朋友,依次类推,题目的意思就是求最大的朋 ...

  4. HDU 1856 More is better(并查集)

    http://acm.hdu.edu.cn/showproblem.php?pid=1856 More is better Time Limit: 5000/1000 MS (Java/Others) ...

  5. HDU 1856 并查集

    http://acm.hdu.edu.cn/showproblem.php?pid=1856 More is better Time Limit: 5000/1000 MS (Java/Others) ...

  6. hdu 1856 More is better (并查集)

    More is better Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 327680/102400 K (Java/Others) ...

  7. HDU 1856 Brave Game(巴什博奕)

    十年前读大学的时候,中国每年都要从国外引进一些电影大片,其中有一部电影就叫<勇敢者的游戏>(英文名称:Zathura),一直到现在,我依然对于电影中的部分电脑特技印象深刻. 今天,大家选择 ...

  8. Hdu 1856(离散化+并查集)More is better

    题意:一些人遵循朋友的朋友也是朋友原则,现在找出最大的朋友圈, 因为人的编号比较大,但是输入的数据最多是10w行,所以可得出最多也就20w人,所以可以进行一下离散化处理,这样数据就会毫无压力 //// ...

  9. More is better(hdu 1856 计算并查集集合中元素个数最多的集合)

    More is better Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 327680/102400 K (Java/Others) ...

随机推荐

  1. 【jmeter】浅说 think time

    接口每天被5000个人调用,同时在线500人,每天要被调用50000次.  过了没多久测试完成写了一份报告发给项目经理: 并发 | 响应时间 | 应用服务器cpu |数据库服务器cpu |TPS | ...

  2. Enable EPEL Repository for RHEL/CentOS 7.x/6.x/5.x

    This howto guide shows you’ll how to enable EPEL repository under RHEL/CentOS 6/5 to install additio ...

  3. WSUS目录本地迁移

    生产环境中有一台win2003 server,安装了Microsoft Windows Server Update Services 3.0,作为所有windows server的内网补丁更新服务器, ...

  4. VBA相关

    --能否彻底隐藏某行或某列 用代码隐藏列,将其放在Private Sub Worksheet_SelectionChange(ByVal Target As Range)Columns(1).Enti ...

  5. mongodb3.03开启认证

    原文地址:http://21jhf.iteye.com/blog/2216103 下载了最新mongodb3.03版本,当使用--auth 参数命令行开启mongodb用户认证时遇到很多问题,现总结如 ...

  6. Servlet概述及其生命周期

    Servlet和传统CGI程序相比的优点:   1. 只需要启动一个操作系统进程以及加载一个JVM,大大降低了系统的开销 2. 如果多个请求需要做同样处理的时候,这时只需要加载一个类,这也大大降低了开 ...

  7. DBA_Oracle Database 11g 面向 DBA 和开发人员的重要特性

     2015-01-23 Created By BaoXinjian

  8. HDU 3001 Traveling(状压DP)

    题目大意:10个点的TSP问题,但是要求每个点最多走两边,不是只可以走一次,所以要用三进制的状态压缩解决这个问题.可以预处理每个状态的第k位是什么. 原代码链接:http://blog.csdn.ne ...

  9. Oracle数据库 External component has thrown an exception

    出现这种错误一般是在SQL语句执行前就报出的错误.这样的错误一般需要仔细检查SQL语句,以及参数的数据类型. 而在cmd.ExecuteNonQuery()中出现的错误,则很可能就排除了语法类的错误. ...

  10. C# 中的事件含义介绍

    AutoSizeChanged 当 AutoSize 属性的值更改时发生.(从 ButtonBase 继承.)   BackColorChanged 当 BackColor 属性的值更改时发生.(从 ...