首页 > 其他分享 >并查集

并查集

时间:2024-03-16 15:01:19浏览次数:25  
标签:return fa int fy 查集 fx find

模板题:
https://www.luogu.com.cn/problem/P1551
题解:

#include <bits/stdc++.h>

using namespace std;

int n, m, p;
int fa[5050];

int find(int x) {
     return fa[x] == x ? x : fa[x] = find(fa[x]);
}
int query(int x, int y) {
    int fx = find(x), fy = find(y);
    if(fx == fy) return 1;
    return 0;
}
void merge(int x, int y) {
    int fx = find(x), fy = find(y);
    if(fx == fy) return ;
    fa[fx] = fy;
}

int main() {
	cin >> n >> m >> p;
	for(int i = 1; i <= n; i ++) {
		fa[i] = i;
	}
	while(m --) {
		int x, y;
		cin >> x >> y;
		merge(x, y);
	}
	while(p --) {
		int x, y;
		cin >> x >> y;
		if(query(x, y)) {
			cout << "Yes" << endl;
		}
		else cout << "No" << endl;
	}
	return 0;
}

标签:return,fa,int,fy,查集,fx,find
From: https://www.cnblogs.com/yishujia/p/18077080

相关文章

  • 并查集
    并查集是一种可以动态维护若干个不重叠的集合,并支持合并与查询的数据结构。例:P1551亲戚题目描述:如果\(x\)和\(y\)是亲戚,\(y\)和\(z\)是亲戚,那么\(x\)和\(z\)也是亲戚。如果\(x\)和\(y\)是亲戚,那么\(x\)的亲戚都是\(y\)的亲戚,\(y\)的亲戚也都是\(x\)的......
  • 并查集
    并查集目录并查集(1.概念:(2.详解Q1:如何表示不同的家族ans1:Q2:如何将两个人归到同一个家族中ans2:CODE:PS:(1.概念:处理不相交可合并的集合关系的数据结构叫做并查集;(2.详解例题:P1551亲戚一道并查集的板子题我们来详细解一下:Q1:如何表示不同的家族ans1:即如何表示不同的集合;再......
  • 并查集解mex_cf932_B. Informatics in MAC
    目录题目概述思路想法参考代码做题反思题目概述原题参考:B.InformaticsinMAC给出一个长度为n的数组,问是否可以将其分为k个(k>1)mex相同的数组,如果可以的话,作出一种划分思路想法假设一个数组可以被分为k(k>2)个区间,每个区间的mex相同,那么可以确定的是,该数组中一定不存在mex这......
  • 一类链式并查集问题
    链接:https://ac.nowcoder.com/acm/contest/69510/G来源:牛客网你在一个星球上,外星人amiloac想让你管理一条河流,该河流有\(x\)段,每两段之间有一个挡板隔开,每一段都有各自的颜色\(a\)。你需要管理\(q\)天,每一天你需要做以下的一种操作。\(1\l\r\)将第\(l\)至\(r\)段河流的所有未......
  • 带权并查集板子
    以一道区间和查询来说明板子如何使用1.merge的时候只需要维护两个根节点的距离,利用的是合并时题目给的信息2.find的时候更新维护是子节点到根的距离3.需要加一个查询函数,因为距离数组是开在结构体内部的。题目描述对于一个长度为\(N\)的整数数列\(A_{1},A_{2},\cdotsA_......
  • 程序自动分析—并查集
    Description在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足。考虑一个约束满足问题的简化版本:假设x1,x2,x3,…代表程序中出现的变量,给定n个形如xi=xj或xi≠xj的变量相等/不等的约束条件,请判定是否可以分别为每一个变量赋予恰当的值,使得上述所有约束条件......
  • 信息传递(题解)[并查集]
    题目题目描述有n个同学(编号为1到n)正在玩一个信息传递的游戏。在游戏里每人都有一个固定的信息传递对象,其中,编号为i的同学的信息传递对象是编号为Ti同学。游戏开始时,每人都只知道自己的生日。之后每一轮中,所有人会同时将自己当前所知的生日信息告诉各自的信息传递对象(注意:可能有......
  • 并查集(模板介绍+路径压缩)
    并查集(模板介绍+路径压缩)题面P3367并查集题目描述如题,现在有一个并查集,你需要完成合并和查询操作。第一行包含两个整数N,M,表示共有N个元素和M个操作。接下来M行,每行包含三个整数Z,X,Y。当Z=1时,将X与Y所在的集合合并。当Z=2时,输出Z与Y是否在同一集合内,是的输出Y;否则输出N......
  • CF776D(并查集思想)
    难度1em还是一道比较套路的题目。观察发现,如果当\(r_{i}=1\)时他的两把钥匙状态是相同的,当\(r_{i}=0\)时他的两把钥匙状态是不同的,对于这种相同不同的问题可以考虑并差集,状态一样就一样的并在一起,否则就把不一样的并在一起所以以后看见这些问题(a=b+k,a=!b,a=b)都可以用带权并查......
  • 并查集+建图 同样是逆向思维 和星球大战类似
    L2-013红色警报分数25作者 陈越单位 浙江大学战争中保持各个城市间的连通性非常重要。本题要求你编写一个报警程序,当失去一个城市导致国家被分裂为多个无法连通的区域时,就发出红色警报。注意:若该国本来就不完全连通,是分裂的k个区域,而失去一个城市并不改......