未知错误怎么回事?
查看原帖
未知错误怎么回事?
1067623
LWB_LXY_OI楼主2024/5/26 12:41

未知错误怎么回事?

#include<bits/stdc++.h>
using namespace std;
int n,m,father[200005],c[200005];
int find(int x)
{
	if(father[x]!=x)father[x]=find(father[x]);
	return father[x];
}
int main()
{
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++)
	{
		father[i]=i;
	}
	for(int i=1;i<=m;i++)
	{
		int x,y;
		scanf("%d%d",&x,&y);
		int f1=find(x),f2=find(y);
		if(f1!=f2)father[f2]=f1;
	}
	for(int i=1;i<=n;i++)
	{
		int f=find(i);
		c[f]++;
	}
	long long ans=0;
	for(int i=1;i<=n;i++)
	{
		if(c[i]>0)ans+=c[i]*(c[i]-1ll)/2;
	}
	printf("%lld",ans-m);
	return 0;
}

Unknown Error

2024/5/26 12:41
加载中...