题目描述
并查集
样例
#include<iostream>
using namespace std;
const int N=1010;
int f[N];
int find(int x){
if(f[x]!=x){
f[x]=find(f[x]);
}
return f[x];
}
int main(){
int n,m;
cin>>n>>m;
int a,b;
int num=0;
for(int i=1;i<=n;i++){
f[i]=i;
}
for(int i=0;i<m;i++){
cin>>a>>b;
a=find(a),b=find(b);
if(a!=b){
num++;
f[a]=b;
}
}
cout<<n-1-num<<endl;
return 0;
}
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla