并查集p3367模板并查集(代码片段)

xiaoyezi-wink xiaoyezi-wink     2022-11-30     784

关键词:

P3367 【模板】并查集

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<cstdlib>
using namespace std;
int n,m,zi,xi,yi;
int father[10001];
int find(int x)  //寻找根结点并压缩路径

    if(father[x]!=x) father[x]=find(father[x]);
    return father[x];

void unionn(int x,int y) //合并两个集合

    x=find(x);
    y=find(y);
    father[y]=x;

bool judge(int x,int y)  //判断元素是否属于同一集合

    x=find(x);
    y=find(y);
    if(x==y)
      return true;
    else 
      return false;

int caozuo(int z,int x,int y)

    if(z==1)
        unionn(x,y);
    if(z==2)
    
        if(judge(x,y))
          printf("Y\n");
        else
          printf("N\n");
    

int main()

    scanf("%d%d",&n,&m);

    for(int i=1;i<=n;i++)  //初始化
      father[i]=i;for(int i=1;i<=m;i++)
    
        scanf("%d%d%d",&zi,&xi,&yi);
        caozuo(zi,xi,yi);
    
    
    return 0;
    

 

p3367模板并查集(代码片段)

题目描述如题,现在有一个并查集,你需要完成合并和查询操作。输入输出格式输入格式: 第一行包含两个整数N、M,表示共有N个元素和M个操作。接下来M行,每行包含三个整数Zi、Xi、Yi当Zi=1时,将Xi与Yi所在的集合合并当Zi... 查看详情

洛谷p3367并查集模板

并查集是一种树型的数据结构,主要用来处理一些不相交集合的合并和更改问题。比如找4的祖先,原来是4->2->1,通过并查集路径压缩后,变为4->1。也就变成了下图。 并查集的模板题:#include<cstdio>#include<cstring&... 查看详情

并查集模板(代码片段)

推荐题目:P3367【模板】并查集。该题的缺点:数据不够水。本蒟蒻实在是太弱了,不会!推荐一篇文章:浅谈并查集优化。Code:#include<iostream>#include<cstring>#include<string>#include<algorithm>#include<cstdlib>#include<... 查看详情

p3367模板并查集

P3367【模板】并查集#include<bits/stdc++.h>usingnamespacestd;constintN=1e4+10;inta[N];intn,m;intfa[N];intfind(intx) if(fa[x]==x) returnx; fa[x]=find(fa[x]); returnfa[x];intmain() scanf("%d%d",&am 查看详情

洛谷p3367模板并查集

P3367【模板】并查集 293通过551提交题目提供者HansBug标签难度普及- 提交  讨论  题解  最新讨论不知道哪错了为啥通不过最后三个节点题解不懂为什么MLE最后一个数据?题目描述如题,现在有一个并... 查看详情

洛谷p3367模板并查集

 P3367【模板】并查集题目描述如题,现在有一个并查集,你需要完成合并和查询操作。输入输出格式输入格式: 第一行包含两个整数N、M,表示共有N个元素和M个操作。接下来M行,每行包含三个整数Zi、Xi、Yi当Zi=1时,将X... 查看详情

洛谷p3367并查集模板

#include<cstdio>usingnamespacestd;intn,m,p;intfather[2000001];intfind(intx){if(father[x]!=x)father[x]=find(father[x]);returnfather[x];}voidunionn(inti,intj){father[j]=i;}intmain(){scanf("%d%d",& 查看详情

洛谷p3367-并查集(java模板)(代码片段)

并查集概论加权标记法总结P3367并查集P1551亲戚概论定义:并查集是一种树型的数据结构,用于处理一些不相交集合的合并及查询问题(即所谓的并、查)。比如,我们可以用并查集来判断一个森林中有几棵树... 查看详情

洛谷p3367模板并查集

#include<bits/stdc++.h>usingnamespacestd;intfa[10005],n,m,type,a,b;intfather(intx){ if(fa[x]==x)returnx; fa[x]=father(fa[x]); returnfa[x];}intmain(){ scanf("%d%d",&n,&m); for(inti=1;i< 查看详情

p3367模板并查集

题目描述如题,现在有一个并查集,你需要完成合并和查询操作。输入输出格式输入格式: 第一行包含两个整数N、M,表示共有N个元素和M个操作。接下来M行,每行包含三个整数Zi、Xi、Yi当Zi=1时,将Xi与Yi所在的集合合并当Zi... 查看详情

洛谷p3367模板并查集

题目描述如题,现在有一个并查集,你需要完成合并和查询操作。输入输出格式输入格式:第一行包含两个整数N、M,表示共有N个元素和M个操作。接下来M行,每行包含三个整数Zi、Xi、Yi当Zi=1时,将Xi与Yi所在的集合合并当Zi=2时... 查看详情

洛谷p3367模板并查集

题目描述如题,现在有一个并查集,你需要完成合并和查询操作。输入输出格式输入格式:第一行包含两个整数N、M,表示共有N个元素和M个操作。接下来M行,每行包含三个整数Zi、Xi、Yi当Zi=1时,将Xi与Yi所在的集合合并当Zi=2时... 查看详情

并查集模板并查集模板luogu-3367(代码片段)

题目描述简单的并查集模板输入描述第一行包含两个整数N、M,表示共有N个元素和M个操作。接下来M行,每行包含三个整数Zi、Xi、Yi当Zi=1时,将Xi与Yi所在的集合合并当Zi=2时,输出Xi与Yi是否在同一集合内,是的话输出Y;否则话... 查看详情

tarjan模板,高级并查集(代码片段)

HDU1269评论区居然有人说用并查集过了,其实回想一下求无向图的连通分量,就是并查集,求有向图的话,就要用到这个算法,或者Kosaraju。再回想一下,Tarjan确实比较像并查集,我在第一次写的时候就有这种感觉请看:这是我在... 查看详情

并查集模板(代码片段)

关于并查集的原理这里就不加阐述,参考博文:https://www.tuicool.com/articles/Zb2qYzj1inta[maxn];2intfa[maxn];3voidUFinit(intx)//并查集的初始化45for(inti=0;i<x;i++)fa[i]=-1;67intFind(intx)//查找并返回节点x所属集合的根节点89ints;//查找位置10for( 查看详情

模板并查集(代码片段)

主要函数 Merge :合并两个并查集 GetRoot :查询某个元素在哪个集合 Query :查询两个元素是否属于同一集合数据结构 parent[i]=j :j是i的父节点Code1intparent[N];23intGetRoot(inta)45if(parent[a]!=a)6parent[a]=GetRoot 查看详情

yangk's并查集-模板(代码片段)

//并查集-都要给fa赋初值!!//======================================/*递归版路径压缩*/intfa[maxn];intfind(intx)returnfa[x]==x?x:fa[x]=find(fa[x]);voidmerge(intx,inty)fa[find(x)]=find(y);//=========================== 查看详情

并查集原理分析(代码片段)

文章目录1.并查集是什么2.并查集性质3.并查集可以解决的问题4.并查集模板5.并查集的应用1.并查集是什么在一些应用问题中,需要将n个不同的元素划分成一些不相交的集合。开始时**,每个元素自成一个单元素集合**࿰... 查看详情