萌新刚学OI 样例输出全-1求助
查看原帖
萌新刚学OI 样例输出全-1求助
766022
__pipi__楼主2024/8/3 16:38
#include<bits/stdc++.h>
#define ll long long 
using namespace std;
const int N=5e5+5;
int fa[N];
int d[N];
int siz[N];
int find(int x) {
	if(fa[x]==x) return x;
	int a=fa[x];
	fa[x]=find(fa[x]);
	d[x]+=d[a];
	siz[x]=siz[fa[x]];
	return fa[x];
}
void ee() {
	for(int i=1;i<=2*30000;i++) {
		fa[i]=i;
		siz[i]=1;
		d[i]=0;
	}
}
void work() {	
	char op;
	int x,y;
	cin>>op>>x>>y;
	if(op=='M') {
		fa[find(x)]=find(y);
		d[find(x)]+=siz[find(y)];
		siz[find(x)]+=find(y);
		siz[find(y)]=find(x);
	}
	else {
		x=find(x),y=find(y);
		if(fa[x]==fa[y]) {
			cout<<abs(d[x]-d[y])-1;
		}	
		else puts("-1");
	}	
}
int main() {
	int t;
	cin>>t;
	ee();
	while(t--) {
		work();
	}
	return 0;
}

2024/8/3 16:38
加载中...