int find(int x){return fa[x]==x?x:fa[x]=find(fa[x]);}
#include <set>
#include <map>
#include <cmath>
#include <queue>
#include <vector>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
const int MAXN=;
int n,fa[MAXN],dis[MAXN],height[MAXN];char s[];
int find(int x){
int fx=fa[x];
if(fa[x]!=x){
fa[x]=find(fa[x]);//路径压缩
dis[x]+=dis[fx];//该行只会在合并时遍历一次
}
return fa[x];
} void Union(int x,int y){
int fx=find(x),fy=find(y);
fa[fy]=fx;
dis[fy]=height[fx];
height[fx]+=height[fy];
} int main(){
scanf("%d",&n);
for(int i=;i<MAXN;i++)fa[i]=i,height[i]=;
for(int x,y;n--;){
scanf("%s",s);
if(s[]=='M')scanf("%d%d",&x,&y),Union(x,y);
else scanf("%d",&x),printf("%d\n",height[find(x)]-dis[x]-);
}
return ;
}

最新文章

  1. Android Studio中Button等控件的Text中字符串默认大写的解决方法
  2. Ajax验证用户名是否存在模板
  3. zoj3228Searching the String(ac自动机)
  4. IIS8托管WCF服务
  5. Swift - defer关键字(推迟执行)
  6. C语言的本质(22)——C标准库之字符串操作
  7. java如何在一个有序的数组类插入一个数!
  8. 用fiddler2调试localhost
  9. 后台模拟请求 HttpHelper 序列化 MD5 时间戳
  10. SpringInAction学习笔记(一):核心概念
  11. 【Storm篇】--Storm从初始到分布式搭建
  12. cocos2dx 3.3 笔记
  13. [原]Docker-issue(2) http: server gave HTTP response to HTTPS client
  14. sql语句的存储过程中的条件处理
  15. oracle insert、append、parallel、随后查询的redo与磁盘读写
  16. final个人阅读作业
  17. JavaScript--DOM操作表格及样式(21)
  18. 你应该关注的几个Eclipse超酷插件
  19. 网络流$1$&#183;简单的$EK$与$Dinic~of~Net-work ~ Flow$学习笔记
  20. &lt;Android 应用 之路&gt; MPAndroidChart~ScatterChart

热门文章

  1. Java-跳跃路线
  2. react 中 函数bind 和箭头函数
  3. css使用padding-bottom百分比进行提前占位,防止抖动
  4. Wannafly Winter Camp 2020 Day 5J Xor on Figures - 线性基,bitset
  5. Web简单小结
  6. Arcgis runtime sdk .net 二次开发
  7. Dubbo-服务注册中心之AbstractRegistryFactory等源码
  8. Spark学习之路 (二)Spark2.3 HA集群的分布式安装[转]
  9. 【巨杉数据库SequoiaDB】巨杉Tech | 巨杉数据库数据高性能数据导入迁移实践
  10. 假期学习【三】HDFS操作及spark的安装/使用