题目列表 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
模板
836. 合并集合 - AcWing题库
#include<bits/stdc++.h>
using ll=long long;
//#define int ll
const int N=1e5+10,mod=1e9+7;
int n,m;
int p[N],sz[N];
int find(int a)
{
if(p[a]!=a) p[a]=find(p[a]);
return p[a];
}
void merge(int a,int b)
{
int pa=find(a),pb=find(b);
if(pa!=pb){
p[pa]=pb;
sz[pb]+=sz[pa];
}
}
void que(int a,int b){
if(find(a)==find(b)) std::cout<<"Yes"<<'\n';
else std::cout<<"No"<<'\n';
}
void solve()
{
std::cin>>n>>m;
for(int i=1;i<=n;i++)
{
sz[i]=1;
p[i]=i;
}
while(m--)
{
char op;
int a,b;
std::cin>>op>>a>>b;
if(op=='M')
{
merge(a,b);
}else{