题目链接
P8654 [蓝桥杯 2017 国 C] 合根植物 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
AC代码
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N = 2e6+10,M=1e3+10;
int a[N],pre[N],p[N],ans=0;
int find(int x)
{
if(p[x]!=x)
{
p[x]=find(p[x]);
}
return p[x];
}
signed main()
{
int n,m;cin>>n>>m;
int ans=0;
int k;cin>>k;
for(int i=1;i<=n*m;i++)p[i]=i;
for(int i=1;i<=k;i++)
{
int x,y;cin>>x>>y;
int px = find(x),py = find(y);
if(px!=py)p[px]=py;
}
for(int i=1;i<=n*m;i++)
{
if(find(i)==i)ans++;
}
cout<<ans<<endl;
return 0;
}