HDOJ1856More is better
来源:互联网 发布:mac下jenkins安装 编辑:程序博客网 时间:2024/06/05 10:42
题目:
http://acm.hdu.edu.cn/showproblem.php?pid=1856
代码及解析:
#include<stdio.h>#define MAX 10000001int per[MAX];int num[MAX];/*int find(int x){int r,j;r = per[x];while( r != per[r])r = per[x];while(per[x] != r){j = per[x];per[x] = r;x = r;}return r;}*///使用递归回溯比用while循环要快很多(不知道为什么)//查找点x的根结点int find(int x){if(per[x] != x)return find(per[x]);return x;}int main(){int n,A,B,b,i;while(scanf("%d",&n) != EOF){if(n == 0)//当n为0的时候应该为1{printf("1\n");continue;}for(i = 0; i <= MAX; i++)//进行初始化{per[i] = i;num[i] = 1;}b = 0;//b初始化为0,用来保存最大节点个数。while(n --){scanf("%d%d",&A,&B);//查找A和B所在树的根结点A = find(A);B = find(B);if(A != B)//不在同一棵树{if(num[A] < num[B])//当A的节点数比B的少则将A树接到B树上{per[A] = B;num[B] += num[A];if(num[B] > b)b = num[B];}else//当B树的节点个数比A少或者相同的时候,在将B树接到A树的根节点{per[B] = A;num[A] += num[B];if(num[A] > b)b = num[A];}}}printf("%d\n",b);//输出最大值}return 0;}
- HDOJ1856More is better
- HDOJ1856More is better (并查集)
- English is better and better
- HDOJ More is better
- HDU2929:Bigger is Better
- Worse is Better
- hdu More is better
- More is better
- HDU1856:More is better
- HDU1856--More is better
- hdu1856-More is better
- HDU1856:More is better
- hdu1856 More is better
- H - More is better
- More is better
- More is better
- More is better
- More is better
- 解析虚拟VMware三种网络模式根本区别
- hdu 1997 汉诺塔VII
- Linux系统调用跟我学
- 向下取整floor函数
- 字符串匹配(2)
- HDOJ1856More is better
- iptables 规则实例和介绍
- 解析Windows 2008系统的数百个服务
- SQL Server中使用触发器的优点
- Android入门
- oracle rownum的问题
- HDOJ 4162 Shape Number(最小表示法 )
- 嵌入式 linux 查看系统运行时间
- 网页内嵌字体