uva10608
来源:互联网 发布:时时彩做计划软件 编辑:程序博客网 时间:2024/05/16 23:35
#include <iostream>#include <stdio.h>#include <algorithm>#include <string.h>using namespace std;int par[500005];int g[500005];int cases;int n,m;int find_par(int x){ return x==par[x]?x:find_par(par[x]);}void get_son_num()//这个解法不能把每个son直接连上祖先……而是统计数目的时候找的是祖先而不是父亲{ int num=0; for(int i=1; i<=n; i++) { int x=find_par(i); g[x]++ ; } sort(g+1,g+n+1); cout<<g[n]<<endl;}void union_(int x,int y){ int a=find_par(x); int b=find_par(y); par[a]=b;}int main(){ //freopen("debug//in.txt","r",stdin); //freopen("debug//out.txt","w",stdout); cin>>cases; while(cases--) { scanf("%d%d",&n,&m); memset(g,0,sizeof(g)); for(int i=1; i<=n; i++) par[i]=i; for(int i=0; i<m; i++) { int a,b; scanf("%d%d",&a,&b); union_(a,b); } get_son_num(); } return 0;}/*110 74 106 46 107 55 13 67 3*/
补一个统计数目的时候直接找父亲的代码
#include <iostream>#include <stdio.h>#include <algorithm>#include <string.h>using namespace std;int par[500005];int g[500005];int cases;int n,m;int find_par(int x){ return x==par[x]?x:find_par(par[x]);}void union_(int x,int y){ int a=find_par(x); int b=find_par(y); par[a]=b;}int main(){ cin>>cases; while(cases--) { scanf("%d%d",&n,&m); memset(g,0,sizeof(g)); for(int i=1; i<=n; i++) par[i]=i; for(int i=0; i<m; i++) { int a,b; scanf("%d%d",&a,&b); union_(a,b); } for(int i=1;i<=n;i++) par[i]=find_par(i); for(int i=1;i<=n;i++) { int x=par[i]; g[x]++; } sort(g+1,g+n+1); cout<<g[n]<<endl; } return 0;}/*110 74 106 46 107 55 13 67 3*/
阅读全文
0 0
- uva10608
- UVA10608
- uva10608
- uva10608
- UVa10608 Friends
- UVa10608 Friends
- 并查集+uva10608
- uva10608(并查集)
- uva10608 并查集
- uva10608 (并查集)
- uva10608(基础的并查集)
- 确保对象的唯一性——单例模式 (四)
- python学习—Day16—类(一般形式、继承)
- 一整数数组,将奇数放在前面,偶数放在后面
- 红黑树
- 斐波那契?
- uva10608
- ArrayList解析
- Python FTP
- DecimalFormat
- Android RxJava 实战讲解:优雅实现 网络请求轮询
- 引用类型与垃圾回收
- springmvc log4j设置日志输出级别
- NYOJ 364 HDU 1052 田忌赛马
- (10)global-results、继承包