**链接:****传送门 **

思路:增加num[] 记录集合中的个数,maxx[] 记录集合中最大值,挺不错的并查集练习题,主要是 unite 函数里如何改变一些东西,挺好的题,能用C尽量不用C++,效率差蛮大的!


/*************************************************************************
> File Name: tat2144.cpp
> Author: WArobot
> Blog: http://www.cnblogs.com/WArobot/
> Created Time: 2017年05月08日 星期一 18时51分08秒
************************************************************************/ #include<bits/stdc++.h>
using namespace std; const int maxn = 1e6+10;
int n,m;
int par[maxn] , num[maxn] , maxx[maxn];
char op[10]; void init(int n){
for(int i=0;i<=n;i++){
par[i] = i;
num[i] = 1;
maxx[i] = i;
}
}
int find(int x){
int p , tmp;
p = x;
while( x!=par[x] )
x = par[x];
while( p!=x ){
tmp = par[p];
par[p] = x;
p = tmp;
}
return x;
}
int same(int x,int y){
return find(x) == find(y) ;
}
void unite(int x,int y){
int fx = find(x) , fy = find(y);
if( fx == fy ) return;
else{
par[fy] = fx;
num[fx] += num[fy];
maxx[fx] = max( maxx[fx] , maxx[fy] );
}
}
int main(){
while(~scanf("%d%d",&n,&m)){
init(n);
int x , y , set_num = n;
while(m--){
getchar();
scanf("%s",op);
if( op[0] == 'u'){
scanf("%d%d",&x,&y);
if( find(x)!=find(y) ){
unite(x,y);
set_num--;
}
}
else if( op[0]=='s' && op[1]=='a'){
scanf("%d%d",&x,&y);
if( same(x,y) ) puts("1");
else puts("0");
}
else if( op[0]=='n' ){
scanf("%d",&x);
printf("%d\n",num[ find(x) ]);
}
else if( op[0] == 'm' ){
scanf("%d",&x);
printf("%d\n",maxx[ find(x) ]);
}
else{
printf("%d\n",set_num);
}
}
}
return 0;
}

T^T OJ 2144 并查集( 并查集... )的更多相关文章

  1. HDU 3038 How Many Answers Are Wrong (并查集)---并查集看不出来系列-1

    Problem Description TT and FF are ... friends. Uh... very very good friends -________-bFF is a bad b ...

  2. docker 快速部署ES集群 spark集群

    1) 拉下来 ES集群  spark集群 两套快速部署环境, 并只用docker跑起来,并保存到私库. 2)弄清楚怎么样打包 linux镜像(或者说制作). 3)试着改一下,让它们跑在集群里面. 4) ...

  3. Mongodb主从复制 及 副本集+分片集群梳理

    转载努力哥原文,原文连接https://www.cnblogs.com/nulige/p/7613721.html 介绍了Mongodb的安装使用,在 MongoDB 中,有两种数据冗余方式,一种 是 ...

  4. Mongodb分布式集群副本集+分片

    目录 简介 1. 副本集 1.1 MongoDB选举的原理 1.2 复制过程 2. 分片技术 2.1 角色 2.2 分片的片键 2.3 片键分类 环境介绍 1.获取软件包 2.创建路由.配置.分片等的 ...

  5. 【MongoDB】windows平台搭建Mongo数据库复制集(类似集群)(转)

    原文链接:[MongoDB]windows平台搭建Mongo数据库复制集(类似集群)(一) Replica  Sets(复制集)是在mongodDB1.6版本开始新增的功能,它可以实现故障自动切换和自 ...

  6. 小波说雨燕 第三季 构建 swift UI 之 UI组件集-视图集(六)Picker View视图 学习笔记

    想对PickerView进行操作,只能在代码中操作. 下面 ,再添加三个label组件,然后将所有组件配置到代码中(看代码),然后要实现对PickerView的操作,就要实现它的DataSource协 ...

  7. SICP 解题集 — SICP 解题集

    SICP 解题集 — SICP 解题集 SICP 解题集¶ 这个文档的目标是成为中文化的.完整的<计算机程序的构造和解释>一书的解题集. 这个解题集的特色是: 对于每道习题,除了习题答案之 ...

  8. Mongodb副本集+分片集群环境部署记录

    前面详细介绍了mongodb的副本集和分片的原理,这里就不赘述了.下面记录Mongodb副本集+分片集群环境部署过程: MongoDB Sharding Cluster,需要三种角色: Shard S ...

  9. Hadoop集群-HDFS集群中大数据运维常用的命令总结

    Hadoop集群-HDFS集群中大数据运维常用的命令总结 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客会简单涉及到滚动编辑,融合镜像文件,目录的空间配额等运维操作简介.话 ...

  10. mongodb副本集加分片集群安全认证使用账号密码登录

    mongodb副本集加分片集群搭建网上资料有很多.粘贴一个写的比较好的.副本集加分片搭建 对于搭建好的mongodb副本集加分片集群,为了安全,启动安全认证,使用账号密码登录. 默认的mongodb是 ...

随机推荐

  1. concurrent.futures 学习笔记

    concurrent.futures 先看下官方介绍 The asynchronous execution can be performed with threads, using ThreadPoo ...

  2. DedeCMS用channelartlist调用顶级栏目及列表

    这个标签全局都可使用,可以减少多次使用 {dede:arclist typeid=‘栏目ID’titlelen='60' row='10'}.除了宏标记外,{dede:channelartlist}是 ...

  3. Laravel的路由功能

    只能在当前方法内加载视图和URL跳转!

  4. nyoj252-01串

    01串 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 ACM的zyc在研究01串,他知道某一01串的长度,但他想知道不含有"11"子串的这种长度的0 ...

  5. jquery 去重

    var yearArray = new Array(2009, 2009, 2010, 2010, 2009, 2010); $.unique(yearArray); alert(yearArray) ...

  6. Linux中的gpio口使用方法

    Linux中的IO使用方法 应该是新版本内核才有的方法.请参考:./Documentation/gpio.txt文件 提供的API:驱动需要包含 #include <linux/gpio.h&g ...

  7. 《代码敲不队》第八次团队作业:Alpha冲刺 第五天

    项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 作业链接地址 团队名称 代码敲不队 作业学习目标 掌握软件编码实现的工程要求. 团队项目github仓库地址链接 GitH ...

  8. hdu 2435 dinic算法模板+最小割性质

    #include<stdio.h> #include<queue> #include<string.h> using namespace std; #define ...

  9. 洛谷——P1968 美元汇率

    https://www.luogu.org/problem/show?pid=1968#sub 题目背景 此处省略maxint+1个数 题目描述 在以后的若干天里戴维将学习美元与德国马克的汇率.编写程 ...

  10. 回想四叉树LOD地形(上)

           唉.~事实上这是在差点儿相同一年前实现的东西,但当时没作好记录.放了那么久了,假设不做点总结的话,好像有点对不起自己,于是·········还是做点什么吧.        我脑洞比較小, ...