RE!!!!!!!P2835求助
查看原帖
RE!!!!!!!P2835求助
208269
刘芝麻楼主2020/12/22 17:07
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
int i,f[1000000],n,sum,j;
bool pd[1000000];
char s[1000000];
int find(int x)
{
	if (f[x]==x) return x;
	return f[x]=find(f[x]);
}
void hb(int x,int y)
{
	int fx=find(x);int fy=find(fy);
	if (fx!=fy) f[fx]=fy;
	return;
}
int main()
{
//freopen("xx.in","r",stdin);
//freopen("xx.out","w",stdout);
	scanf("%d",&n);
	for (i=1;i<=n;i++)
		f[i]=i;
	for (i=1;i<=n;i++)
	{
		gets(s+1);
		sum=0;
		for (j=1;j<=strlen(s+1);j++)
			if (s[j]==' ')
			{
				hb(i,sum);
				sum=0;
			}
			else sum=sum*10+s[j]-48;
		hb(i,sum);
	}
	sum=0;
	for (i=1;i<=n;i++)
		if (!pd[find(i)]) sum++,pd[find(i)]==true;
	printf("%d",sum);
return 0;
}

结果:???

在本地编译器里面一读入第一个数就炸了,然后我试着把每个读入循环的i都输出又没爆,但没读完,望大佬解释!!ORZ

2020/12/22 17:07
加载中...