爆0,球球了
查看原帖
爆0,球球了
1046226
Xuguangyuan楼主2025/1/19 18:58

求看一下哪里有错误样例对了

#include<bits/stdc++.h>
using namespace std;

int n,m,k,q[1000005],x,y,f[1000005],ans;
int find(int x)
{
	int root=x;
	while(q[root]!=root)
	{
		q[root]=find(q[root]);
		root=q[root];
	}
	while(root!=x)
	{
		int next=q[x];
		q[x]=root;
		x=next;
	}
	
	
	return root;
}
int main()
{
	cin>>n>>m;
	cin>>k;
for(int i=1;i<=n*m;i++)
{
	q[i]=i;
}
	for(int i=1;i<=k;i++)
	{
		cin>>x>>y;
		if(find(x)==find(y)) continue;
		q[find(x)]=find(y);
	}
	for(int i=1;i<=n*m;i++)
	{
		f[q[i]]++;
	}
	for(int i=1;i<=n*m;i++)
	{
		if(f[i]>=2) ans++;
	}
	cout<<ans;
	return 0;
	}
2025/1/19 18:58
加载中...