#include<iostream>
using namespace std;
#define max 10000
int s[max];
int findx(int x)
{
if(x!=s[x]) s[x]=findx(s[x]);
return s[x];
}
void un(int a,int b)
{
int x=findx(a);
int y=findx(b);
if(x!=y)
{
s[x]=y;
}
}
int zu[max];
int main()
{
int py;int pyz;cin>>py>>pyz;
for(int i=1;i<=py;i++)
{ s[i]=i; }
for(int i=1;i<=pyz;i++)
{
int x,y;cin>>x>>y;
un(x,y);
}int ans=0;
for(int i=1;i<=py;i++)
{
if(zu[findx(i)]==0)
{
ans++;
zu[findx(i)]=1;
}
}cout<<ans;
return 0;
}
ZZULIOJ 2904: 友谊之桌(并查集)
最新推荐文章于 2024-07-21 22:06:29 发布