求助,样例过了,输出跟下载的一模一样但全WA
查看原帖
求助,样例过了,输出跟下载的一模一样但全WA
280473
404Not_Found楼主2021/7/21 10:47

RT

#include<bits/stdc++.h>
using namespace std;
int father[10001],n,m;
inline int read()
{
	int x=0;
	char c=getchar();
	while(c>='0'&&c<='9')
	{
		x=(x<<1)+(x<<3)+c-48;
		c=getchar();
	}
	return x;
}
inline void build(int len)
{
	for(int i=1;i<=len;i++)
		father[i]=i;
}
inline int find(int x)
{
	if(father[x]==x) return x;
	return father[x]=find(father[x]);
}
inline void unity(int x,int y)
{
	int t1=find(x),t2=find(y);
	father[t2]=t1;
}
inline bool older(int x)
{
	return find(x)==x;
}
int main()
{
	//freopen("P1536_out.txt","w",stdout);
	while(n=read())
	{
		m=read();
		build(n);
		for(int i=1;i<=m;i++)
			unity(read(),read());
		int ans=0;
		for(int i=1;i<=n;i++)
			if(older(i)) ans++;
		if(ans==1) printf("0\n");
		else printf("%d\n",ans-1);
	}
	return 0;
}
2021/7/21 10:47
加载中...