#include <bits/stdc++.h>
using namespace std;
map <int , int>fa;
long long n , m;
int Find(int x)
{
return fa[x] == x ? x : fa[x]=Find(fa[x]);
}
void Merge(int x , int y)
{
int fx = Find(x) , fy = Find(y);
fa[fx]=fy;
n--;
return;
}
int main ()
{
cin >> n >> m;
for (int i = 1; i <= m; i++)
{
int x , y;
cin >> x >> y;
Merge(x , y);
}
cout << n;
return 0;
}
为什么直接输出n - m就对了,用并查集(虽然没什么用)就过不了