首页 > 代码库 > uva10608-Friends
uva10608-Friends
题目链接请戳 这里
解题思路
基本的并查集
代码
#include<stdio.h> #include<string.h> #include<algorithm> #define N 30010 #define M 50010 using namespace std; int cit[N], gro[N]; void make_set(int n) { for (int i = 1; i <= n; i++) cit[i] = i; } int get_fa(int x) { return (cit[x] == x) ? x : cit[x] = get_fa(cit[x]); } int main() { int t; int n, m; scanf("%d", &t); while (t--) { scanf("%d%d", &n, &m); make_set(n); memset(gro, 0, sizeof(gro)); for (int i = 0; i < m; i++) { int a, b; scanf("%d%d", &a, &b); int fa = get_fa(a); int fb = get_fa(b); cit[fa] = fb; } //需要整理各个并查集 for (int i = 1; i <= n; i++) get_fa(i); for (int i = 1; i <= n; i++) gro[cit[i]]++; int maxn = 0; for (int i = 1; i <= n; i++) maxn = max(maxn, gro[i]); printf("%d\n", maxn); } return 0; }
uva10608-Friends
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。