样例过了但为什么全WA?
  • 板块P1536 村村通
  • 楼主yingxilin
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/4/30 15:12
  • 上次更新2023/10/23 17:09:19
查看原帖
样例过了但为什么全WA?
822365
yingxilin楼主2023/4/30 15:12

???求解???

#include<bits/stdc++.h>
using namespace std;
#define MAXN 1000+5
int fa[MAXN];
int find(int x)
{
	if(x==fa[x]) return x;
	return fa[x]=find(fa[x]);
 } 
void join(int c1,int c2)
{
	if(find(c1)!=find(c2))
		fa[find(c1)]=find(c2); 
}
int read()
{
	int x=0;
	char n;
	while(1){
		n=getchar();
		if(n<'0'||n>'9') return x;
		else x=x*10+int(n-'0');
	}
}
void print(int x)
{
	if(x>9) print(x/10);
	putchar(x%10+'0');
 }
int main()
{
	while(1){
		int ans=0;
		memset(fa,0,sizeof(fa));
		int n,m;
		int tot=m;
		n=read();
		if(!n) break;
		m=read();
		for(int i=1;i<=n;i++) fa[i]=i;
		while(m--){
			int x,y;
			x=read(),y=read();
			join(x,y);
			}	
		for(int i=1;i<=n;i++){
				if(find(i)==i) ans++;
			}	
		ans--;	
		print(ans);
		printf("\n");	
	}
	return 0;
}
2023/4/30 15:12
加载中...