首页 > 其他分享 >7-4 并查集【模板】

7-4 并查集【模板】

时间:2024-05-27 18:01:02浏览次数:24  
标签:Yi 输出 Xi Zi int 查集 find 模板

给出一个并查集,请完成合并和查询操作。

输入格式:

第一行包含两个整数N、M,表示共有N个元素和M个操作。

接下来M行,每行包含三个整数Zi​、Xi​、Yi​。

当Zi​=1时,将Xi​与Yi​所在的集合合并。

当Zi​=2时,输出Xi​与Yi​是否在同一集合内,是的话输出Y;否则的话输出N。

输出格式:

对于每一个Zi​=2的操作,对应一行输出,每行包含一个大写字母,为Y或者N。

输入样例:

4 7
2 1 2
1 1 2
2 1 2
1 3 4
2 1 4
1 2 3
2 1 4

输出样例:

N
Y
N
Y

数据规模:

对于30%的数据,N<=10,M<=20;

对于70%的数据,N<=100,M<=1000;

对于100%的数据,N<=10000,M<=200000。

#include<bits/stdc++.h>
using namespace std;
int p[10001];
int find(int x){
    if(p[x]==x)return x;
    else return p[x]=find(p[x]);
}
int main()
{
    int n,m;
    cin>>n>>m;
    int z,x,y;
    for(int i=0;i<n;i++)
        p[i]=i;
    int u,v;
    for(int i=1;i<=m;i++){
        cin>>z>>x>>y;
        if(z==1){
            u=find(x);
            v=find(y);
            p[u]=v;
        }
        else if(z==2){
            u=find(x);
            v=find(y);
            if(u!=v)cout<<"N\n";
            else cout<<"Y\n";
        }
    }
    return 0;
}

标签:Yi,输出,Xi,Zi,int,查集,find,模板
From: https://blog.csdn.net/wang3074162725/article/details/139194137

相关文章

  • springboot3+Thymeleaf 模板一直找不到的原因。
    1<build>2<resources>3<resource>4<directory>src/main/java</directory>5<includes>6<include>**/*.yml</include>7......
  • 记一次攻防演练中的若依(thymeleaf 模板注入)getshell
    记一次攻防演练中幸运的从若依弱口令到后台getshell的过程和分析。0x01漏洞发现首先,我会先把目标的二级域名拿去使用搜索引擎来搜索收集到包含这个目标二级域名的三级域名或者四级域名的网站。这样子可以快速的定位到你所要测试的漏洞资产。1、推荐三个比较实用的搜索引擎:奇......
  • 微信小程序基础 --模板语法(4)
    模板语法1、wxml视图结构1.1概述开发文档:https://developers.weixin.qq.com/miniprogram/dev/framework/quickstart/code.html#WXML-%E6%A8%A1%E6%9D%BF从事过网页编程的人知道,网页编程采用的是HTML+CSS+JS这样的组合,其中HTML是用来描述当前这个页面的结构,CS......
  • BUUCTF SSTI模板注入
    BUUCTFSSTI模板注入基础原理SSTI模板注入(Server-SideTemplateInjection),通过与服务端模板的输入输出交互,在过滤不严格的情况下,构造恶意输入数据,从而达到读取文件或者getshell的目的一般特征函数:render_template_stringSSTI_flask_labs可以看到数据被解析了,那么怎么注......
  • 自用:常见算法竞赛/刷题问题 & 模板
    以下是我平常刷题遇到的部分常见问题,随手记录一下。(不定时更新)基本算法二维前缀和for(inti=1;i<=m;++i){ for(intj=1;j<=n;++j) { pre[i][j]=pre[i-1][j]+pre[i][j-1]-pre[i-1][j-1]+nums[i][j]; }}//异或版本for(inti=1;i......
  • 线段树结构体模板
    线段树是一种维护区间和等功能的数据结构structSegTree{ structnode{ intl,r,sum,len,laz; }tree[N<<2]; inlinevoidpushdown(intu){ intlson=u<<1,rson=lson|1; tree[lson].laz+=tree[u].laz; tree[rson].laz+=tree[u].laz; tree[lson].sum+=tree[lson].len......
  • 【知识点】深入浅出STL标准模板库
    前几天谈论了许多关于数论和数据结构的东西,这些内容可能对初学者而言比较晦涩难懂(毕竟是属于初高等算法/数据结构的范畴了)。今天打算来讲一些简单的内容-STL标准模板库。STL标准模板库C++标准模板库(StandardTemplateLibrary,STL),是C++语言非常重要的一个构成部分......
  • 一个模板元函数来检查一个类是否有一个特定的成员
    通过创建一个模板元函数来检查一个类是否有一个特定的成员。以下是一个例子:#include<type_traits>template<typenameT,typename=void>structhas_type_member:std::false_type{};template<typenameT>structhas_type_member<T,std::void_t<typenameT::typ......
  • 『C++初阶』第四章--- 模板初级
    1.泛型编程    如何实现一个适合于所有类型的通用的交换函数呢?voidSwap(int&left,int&right){inttemp=left;left=right;right=temp;}voidSwap(double&left,double&right){doubletemp=left;left=right;right=temp;}voidSwap(ch......
  • C126 带权并查集 P1196 [NOI2002] 银河英雄传说
    视频链接:   P1196[NOI2002]银河英雄传说-洛谷|计算机科学教育新生态(luogu.com.cn)//带权并查集#include<iostream>usingnamespacestd;constintN=30005;intT;intp[N],d[N],siz[N];intfind(intx){if(p[x]==x)returnx;intt=find(p[x......