HDU_1856
2015-11-26 00:17
253 查看
#include<iostream> //此题中并不会使各个大型集合(除了给出的一对一对的点)相互合并到一起 #include<cstring> // 所以每个集合都可以维护一个相应的 自身元素个数变量 setMAX #include<cstdio> #include<algorithm> using namespace std; const int MAXN = 10000000+10; int setMAX[MAXN]; //初始化值都应该是 1 int pre[MAXN]; //初始化值都应该是自己 void init(){ for(int i = 1; i <= MAXN; i++) { pre[i] = i; setMAX[i] = 1; } } int unionsearch(int root) { int son = root; int temp; while(root!=pre[root]) root = pre[root]; while(son != root) { temp = pre[son]; pre[son] = root; son = temp; } return root; } int root_max(int x, int y) { int root1 = unionsearch(x); int root2 = unionsearch(y); if(root1 != root2) { pre[root1] = root2; //总是在这里犯错误 千万不要写成pre[x] = y setMAX[root2] += setMAX[root1]; //这一句要根据上一句的顺序 } } int main(){ int n; int a, b; while(cin >> n) { if(!n) { printf("1\n"); //栽在这里了 当n为0时 一定要等于1 continue; } init(); for(int i = 0; i < n; i++){ scanf("%d%d", &a, &b); root_max(a, b); } int MAX = 0; for(int i = 0; i <= MAXN; i++) if(setMAX[i]>MAX) MAX = setMAX[i]; cout << MAX << endl; } return 0; }
相关文章推荐
- ecshop、织梦、discuz、wordpress比较
- Tcpdump用法
- sicily 1202. The Bank of Kalii
- Akka实战:分散、聚合模式
- 空指针
- mybatis操作
- EF7 使用过程中遇到的问题(持续编辑更新)
- 自定义ViewPage+底部指示器(广告图片轮播)
- org.jsoup.select.Selector
- LightOJ 1046 Rider
- org.jsoup.select.Selector
- JS开发者常用的10个Sublime Text插件
- const的使用
- .net 估计要死在你手里了
- Tomcat+Apache 负载均衡
- web后端 文件上传
- hdoj2073(无限的路
- 制作initrd(2):update-initramfs和mkinitramfs脚本分析
- js的 style.width 取不到元素的宽度值
- 操作系统核心原理-1.操作系统导论