题意:
第一行n,m,n为强盗人数,m为警方收集的m条线索
接下来m行,每行一个线索,
n m
a b
a b
…表示a,b为同伙.
求一共几个团伙
#include<iostream>
using namespace std;
int f[1000]={0};
int n,m,sum,a,b;
void init(int n)
{
for(int i=1;i<=n;i++)
{
f[i]=i;
}
return;
}
int findd(int x)
{
while(x!=f[x])
x=f[x];
return x;
}
void unin(int a,int b)
{
if(a!=b)
f[b]=a;
return ;
}
int main()
{
sum=0;
int fa,fb;
cin>>n>>m;
init(n);
for(int i=1;i<=m;i++)
{
cin>>a>>b;
fa=findd(a);
fb=findd(b);
unin(fa,fb);
}
for(int i=1;i<=n;i++)
{
if(f[i]==i)
sum++;
}
cout<<sum<<endl;
}