0分 样例都不对
查看原帖
0分 样例都不对
996474
happy_banana楼主2025/7/27 11:33

un函数为啥合并不起来?

#include<bits/stdc++.h>
using namespace std;
int f[30010],T,a,b; 
char c;
int find(int x)
{
	if(f[x]=x) return x;
	return f[x]=find(x);                                                                                                                                                                 
}
void un(int a,int b)
{
	int fa=find(a),fb=find(b);
	cout<<f[fa];
	if(fa!=fb) f[fa]=fb;
	cout<<f[fa];
}
void pd(int a,int b)
{
	if(find(a)!=find(b)) cout<<"-1 \n";
	else cout<<"1 \n";
}
int main()
{
	cin>>T;
	for(int i=1;i<=30000;i++)
		f[i]=i;
	for(int i=1;i<=T;i++)
	{
		cin>>c>>a>>b;
		if(c=='M') un(a,b);
		else pd(a,b);
	}
	for(int i=1;i<=4;i++)
		cout<<f[i]<<" ";
	return 0;
}
2025/7/27 11:33
加载中...