【并查集模板】并查集模板 luogu-3367

题目描述

简单的并查集模板

输入描述

第一行包含两个整数N、M,表示共有N个元素和M个操作。
接下来M行,每行包含三个整数Zi、Xi、Yi
当Zi=1时,将Xi与Yi所在的集合合并
当Zi=2时,输出Xi与Yi是否在同一集合内,是的话输出Y;否则话输出N。

分析

简单的模板,解释留到算法微解读

AC代码

#include <bits/stdc++.h>
using namespace std;
int n,m;
int fa[10000+5];
inline int read(){
    int X=0,w=0; char ch;
    while (!isdigit(ch)) {w|=ch=='0'; ch=getchar();}
    while (isdigit(ch)) {X=(X<<3)+(X<<1)+(ch^48);ch=getchar();}
    return w?-X:X;
}
int gf(int x) {
    if (fa[x]==x) return fa[x];
    else return fa[x]=gf(fa[x]);
}
int main()
{
    n=read(),m=read();
    for (int i=1;i<=n;i++) fa[i]=i;
    while (m--) {
        int x=read(),y=read(),z=read(),p1=gf(y),p2=gf(z);
        if (x==2) {
            if (p1==p2) printf("Y\n");
            else printf("N\n");
        }
        else if (p1!=p2) fa[p1]=p2;
    }
    return 0;
}

原文地址:https://www.cnblogs.com/Dawn-Star/p/9634167.html

时间: 2024-11-09 00:57:34

【并查集模板】并查集模板 luogu-3367的相关文章

opennebula 创建模板【配置集群、配置VNC、配置RAW、配置SSH】

{ "vmtemplate": { "NAME": "bbbb", "MEMORY": "512", "CPU": "1", "DESCRIPTION": "aaaa", "DISK": [ { "IMAGE": "ubuntu-001-iso-image", &quo

青蛙学Linux&mdash;Zabbix Web使用之模板①模板和应用集的概念

1.Zabbix Web中的模板 模板在Zabbix Web中是非常重要的.我们知道,当添加一台主机到Zabbix Web中时,必须向该主机链接一个模板,否则就算将主机添加到Zabbix Web中,Zabbix Web也不会向我们输出该主机的监控数据. Zabbix Web中的模板就是用来定义对于一台主机要监控的项目.当某个监控的项目出现问题时是否触发一系列的动作.展示这个监控项目的图形等. 在Zabbix Web中点击配置-模板,即可进入模板的配置页面,如下所示: 在这个页面中,可以创建模板,

vue模板语法上集

模板语法上集 1.1 插值 1.1.1 文本 {{msg}} 1.1.2 html 使用v-html指令用于输出html代码 1.1.3 属性 HTML属性中的值应使用v-bind指令 1.1.4 表达式 Vue提供了完全的JavaScript表达式支持 {{str.substr(0,6).toUpperCase()}} {{ number + 1 }} {{ ok ? 'YES' : 'NO' }} <li v-bind:id="'list-' + id">我的Id是js

C++模板引出的标准模板库-----&gt;初涉

C++中模板,是相当重要的一部分,前面提到过一些基础,关于模板中需要注意的问题,会在最近整理出来,今天想说的,是由模板引出的标准模板库. 当初经常会被推荐看<STL源码剖析>这本书,听说很厉害,是C++高手都需要走过的路,可一直都不知道STL是什么,也一直忘记去查,今天整理出来的一些东西,最起码可以让未了解过这方面的童鞋认识一下. C++标准模板库,即STL:Standard Template Lib,STL的产生,是必然的.在长期的编码过程中,一些程序员发现,有一些代码经常用到,而且需求特别

忍不住吐槽类模板、模板类、函数模板、模板函数

最近在查资料,发现了一些blog上写"类模板.模板类.函数模板.模板函数的区别"之类的文章.一看之下,闭起眼睛想想,自己写了这么久C++,知道模板,知道函数,也知道类.如果单独问我,类模板或者模板类,我都认为是采用了模板的类.但不知道这"类模板.模板类.函数模板.模板函数"是什么东西. 仔细看了下文章,忍不住吐槽了.其实就是采用模板的类叫类模板,实例化后叫模板类.采用模板的函数叫函数模板,实例化后叫模板函数.好吧,你赢了.知道模板的都会知道,模板实例化后会由编译器生

Hadoop2.0集群、Hbase集群、Zookeeper集群、Hive工具、Sqoop工具、Flume工具搭建总结

实验开发环境所用软件: [[email protected] local]# ll total 320576 -rw-r--r-- 1 root root 52550402 Mar 6 10:34 apache-flume-1.6.0-bin.tar.gz drwxr-xr-x 7 root root 4096 Jul 15 10:46 flume drwxr-xr-x. 11 root root 4096 Jul 10 21:04 hadoop -rw-r--r--. 1 root root

润乾集算报表的集算器数据集部署(I)

润乾集算报表提供了集算器数据集,允许用户使用集算器脚本完成数据的进一步计算和加工,为报表提供数据源支持,从而简化报表开发,提升报表性能. 集算器脚本的编辑需要借助第三方集算编辑器(非报表工具)完成,而后嵌入到报表工具和报表应用中完成报表开发和部署. 下面来看一下集算器数据集的使用和以及报表部署过程. 1.开发环境使用 集算报表使用集算器数据集时,首先需要设置集算器授权信息和配置数据源连接(如果需要从数据库中取数). 1.1.设置授权信息 启动集算报表设计器,选择工具-选项,切换到"集算器选项&q

Mongodb集群部署以及集群维护命令

Mongodb集群部署以及集群维护命令 http://lipeng200819861126-126-com.iteye.com/blog/1919271 mongodb分布式集群架构及监控配置 http://freeze.blog.51cto.com/1846439/884925/ 见文中: 七.监控配置:      早在去年已经出现MongoDB和Redis的Cacti模板,使用它,你可以对你的MongoDB和Redis服务进行流量监控.cacti的模板一直在更新,若企业已经用到nosql这种

联表查询时始终以小结果集驱动大结果集

写在前面的话 不要求每个人一定理解 联表查询(join/left join/inner join等)时的mysql运算过程: 不要求每个人一定知道线上(现在或未来)哪张表数据量大,哪张表数据量小: 但要经常使用explain查看执行计划,这是一种美德! 联表查询的基础知识 下面两个查询,它们只差了一个order by,效果却迥然不同. 第一个查询: EXPLAIN extended SELECT ads.id FROM ads, city WHERE city.city_id = 8005 AN

模板类的约束模板友元函数:template friend functions

本来这篇博客是不打算写的,内容不是很难,对于我自己来讲,更多的是为了突出细节. 所谓template friend functions,就是使友元函数本身成为模板.基本步骤:1,在类定义的前面声明每个模板函数.eg:template <typename T> void counts(); template <typename T> void report<>(T &);2,在类声明中再次将模板声明为友元. template <typename TT>