uva10608 (并查集)
来源:互联网 发布:db2关闭数据库的命令 编辑:程序博客网 时间:2024/06/06 08:53
题目大意:
A跟B是朋友,B跟C是朋友。那么A与C也是朋友。
给出朋友的关系,问最多可以有多少个人是朋友
思路:
并查集
代码:
#include <iostream>using namespace std;#include <cstring>#include <stdio.h>#include <queue>int f[30005];int rank[30005];int size[30005];int x[500005],y[500005];int m,n;void init() { for(int i = 0; i <= n; i++) { size[i] = 1; f[i] = i; rank[i] = 0; }}int find(int x) { int k = x; while(k != f[k]) { k = f[k]; } return k;}int Union(int x,int y) { if(rank[x] > rank[y]) { f[y] = x; size[x] += size[y]; } else { f[x] = y; size[y] +=size[x]; if(rank[x] == rank[y]) rank[y]++; }}int main() { int T; scanf("%d",&T); while(T--) { scanf("%d %d",&n,&m); init(); for(int i = 0; i < m; i++) scanf("%d %d",&x[i],&y[i]); for(int i = 0; i < m; i++) { int a = find(x[i]); int b = find(y[i]); if(a != b) Union(a,b); } int _max = 1; for(int i = 1; i <= n; i++ ) { //cout << size[i] <<endl; if(size[i] > _max ) _max= size[i]; } printf("%d\n",_max); } return 0;}
0 0
- uva10608 (并查集)
- 并查集+uva10608
- uva10608(并查集)
- uva10608 并查集
- uva10608(基础的并查集)
- uva10608
- UVA10608
- uva10608
- uva10608
- 并查集(集并查)
- 并查集(含关系并查集)
- 【并查集】食物链(关系并查集)
- 【并查集】并查集详解(转)
- 分组并查集(种类并查集)
- 并查集, 畅通工程(简单并查集)
- [数据结构]并查集水体POJ2236(并查集)
- 并查集(disjoint_set)
- 并查集(模板)
- 大话设计模式-策略模式
- linux服务器进程为何通常fork()两次
- 安卓应用:简单记事本
- Volley源码学习(三):线程处理request,类CacheDispatcher,NetworkDispatcher,ExecutorDelivery
- 常见面试题
- uva10608 (并查集)
- js调用百度地图API
- LA3971 Assemble
- new 和delect 在数据导入中的作用
- Android学习之路
- 填算式_蓝桥杯题目(暴力破解+使用Vector类的解决方法)
- 如何用AWS(亚马逊云服务器)搭建一个自己的BLOG (2) – 修改网站的标题和样式
- Activity启动模式
- CSS入门基础