为什么快读,cin(取消同步)不行,三个TLE,scanf就AC,蒟蒻の不解
查看原帖
为什么快读,cin(取消同步)不行,三个TLE,scanf就AC,蒟蒻の不解
573458
broooooooky楼主2022/2/26 22:32
#include<iostream>
#define N 10005
using namespace std;
int n,m,fa[N],Rank[N];
inline int read(){
	int x=0,f=1;char ch=getchar();
	while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
	while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
	return x*f;
}
inline int find(int x){
	return fa[x]==x?x:(find(fa[x]));
}
void merge(int x,int y){
	int a=find(x),b=find(y);
	if(Rank[a]>Rank[b])
	{
		fa[b]=a;
		Rank[a]+=Rank[b];
	}
	else
	{
		fa[a]=b;
		Rank[b]+=Rank[a];
	}
} 
int main()
{
	n=read();m=read();
	for(int i=1;i<=n;i++)fa[i]=i,Rank[i]=1;
	for(int i=1,z,x,y;i<=m;i++)
	{
		z=read();x=read();y=read();
		if(z==1)merge(x,y);
		else find(x)==find(y)?cout<<"Y"<<endl:cout<<"N"<<endl;
	}
	return 0;
}
2022/2/26 22:32
加载中...