abc--279--F

abc--279--F

#include <bits/stdc++.h>
using namespace std;
const int M=3e5+5;
//盒子的编号不是固定的
//只要将两个人的id换一下,就可以实现swap(box[i],box[j])
//映射关系,便于查找球对应的是哪一个编号
vector<int>box[M];
int fa[M<<1],id[M],di[M];
int main() {
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
int n,q;
cin>>n>>q;
for(int i=1;i<=n;i++) {
id[i]=di[i]=fa[i]=i;
box[i].push_back(i);
}
while(q--) {
int op,x,y;
cin>>op>>x;
if(op==1) {
cin>>y;
//大的放到小的里面
if(box[id[x]].size()<box[id[y]].size()) {
swap(id[x],id[y]);
swap(di[id[x]],di[id[y]]);
}
for(auto c:box[id[y]]) {
box[id[x]].push_back(c);
fa[c]=id[x];
}
box[id[y]].clear();//记得清空
}
if(op==2) {
fa[++n]=id[x];
box[id[x]].push_back(n);
}
if(op==3)cout<<di[fa[x]]<<endl;
}
return 0;
}
posted @   basicecho  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示