链接 https://www.luogu.org/problemnew/show/P1551 代码 #include<bits/stdc++.h> using namespace std; #define ll long long const int maxn=1e5; int par[maxn]; int rank1[maxn]; void f(int n) //初始化 { ;i<n;i++) { par[i]=i; rank1[i]=; } } int find(int x) { i…
并查集的模板题: #include<iostream> #include<cstdio> using namespace std; ; int fa[maxn]; int find(int x) { return fa[x] == x ? x : fa[x] = find(fa[x]); } void unite(int x, int y) { int x1 = find(x); int y1 = find(y); if (x1 != y1)fa[x1] = y1; } int m…
题目描述 众所周知,香港的黑社会组织猖獗,警方希望能摸清他们的内部构成情况,特派小生前往调查.经过长期的卧底,小生初步获得了一些资料:整个组织有 n 个人,任何两个认识的人不是朋友就是敌人. 而且满足:①我朋友的朋友是我的朋友:②我敌人的敌人是我的朋友.所有是朋友的人组成一个团伙. 现在,警方委派你协助调查,拥有关于这 n 个人的 m 条信息(即某两个人是朋友,或某两个人是敌人) ,请你计算出这个城市最多可能有多少个团伙. 数据范围 2≤N≤2000,1≤M≤5000. 输入输出格式 输入描述:…