uva 10608(并查集)
来源:互联网 发布:c语言swap是什么意思 编辑:程序博客网 时间:2024/04/30 00:06
题意:有n个人,m对基友,规定如果a和b是基友,且b和c是基友,那么a和c是基友,问最多有多少个人互相是基友。
题解:并查集,只需要加一个数组保存每个人的基友数量,最后遍历出最大的。
#include <stdio.h>#include <string.h>const int N = 30005;int n, m, t, pa[N], s[N];int get_parent(int a) {return a == pa[a] ? a : pa[a] = get_parent(pa[a]);}void merge(int a, int b) {int px = get_parent(a);int py = get_parent(b);if (px != py) {pa[px] = pa[py];s[py] += s[px];}}int main() {scanf("%d", &t);while (t--) {scanf("%d%d", &n, &m);for (int i = 1; i <= n; i++) {pa[i] = i;s[i] = 1;}int a, b;for (int i = 0; i < m; i++) {scanf("%d%d", &a, &b);merge(a, b);}int res = -1;for (int i = 1; i <= N; i++)if (s[i] > res)res = s[i];printf("%d\n", res);}return 0;}
0 0
- UVA 10608并查集
- uva 10608(并查集)
- UVa 10608 并查集
- uva 10608 - Friends(并查集)
- UVA 10608 dfs或者并查集
- uva 10608 - Friends (并查集)
- UVA 10608 - Friends (并查集)
- UVa 10608 - Friends(并查集)
- UVA - 10608-Friends(并查集)
- UVA 10608 Friends 并查集
- UVA 10608 Friends 并查集
- UVa 10608 - Friends(并查集)
- uva 10608 并查集个数
- uva 10608 Friends(并查集)
- UVA 10608Friends【并查集】
- UVA---10608-Friends(并查集)
- UVa - 10608 Friends (并查集)
- uva 793 并查集
- 简单实现图片拉伸
- iphone使用开源代码Asyncsocket进行socket编程
- 如何提高Web服务端并发效率的异步编程技术
- UVA - 10341 Solve It
- 再次调用
- uva 10608(并查集)
- 构建高负载高性能大型网站的十个终极秘诀
- 软件工程第二次作业
- NSData
- 2014东北农大校赛--D.Cross the middle (任意两点最短路径 Floyd)
- all in all
- 增加系统开机关机主题(LinuxMint)
- 控制台应用
- XML学习笔记(2)