好久之前做的犯罪团伙今天又翻出来..还不是大数据版 等会去把dfs写了
#include<bits/stdc++.h>
using namespace std;
int n,m,a[6000][6000],s,x,y;
bool flag[6000]={};//用一个bool数组作为标记 且初始为假
void kk(int tt)
{
for (int i=1;i<=n;i++)
{
if ((a[tt][i])&&(!flag[i]))//判断真假
{
flag[i]=1;
kk(i);
}
}
}
int main()
{
int s=0;
cin>>n>>m;
for (int i=1;i<=m;i++)
{
cin>>x>>y;
a[x][y]=1;
a[y][x]=1;
}
for (int i=1;i<=n;i++)
{
if (!flag[i])
{
s=s+1;
kk(i);
}
}
cout<<s;
return 0;
}