数据结构(一):并查集
文章目录
- C++
- Python
一个大集合,可以根据条件拆分成多个集合
- 多棵树在一个
father[]
中- 多个图在一个
father[]
中(判断图中有几个连通分支、至少添加多少条path可将其变为连通图)
C++
#include<cstdio>
using namespace std;const int N=1000+10;
int father[N]; //father[i] = j: i的父节点是j,不一定是根节点。
int isRoot[N] = {0}; //isRoot[i]=j:i是否为根节点(isRoot[i]!=0) or 根节点为i的集合中个数=j// 查找x的根节点
int findFather(int x){int a=x;while(x!=father[x]) x = father[x]; //结束后,x为根节点// 路径压缩(不写,可能超时)while(a!=father[a]){int t=a;a = father[a];father[t] = x;}return x;
}// 查找+合并在a集合中
void unionElem(int a, int b){int ra = findFather(a); //a所在集合的根节点int rb = findFather(b); if(ra!=rb){ //当不在同一集合中时,合并集合father[rb] = ra; }
}int main(){int n;scanf("%d", &n);for(int i=1; i<N; i++){father[i] = i; // 初始化:father[i] = i}...return 0;
}
Python
在这里插入代码片
数据结构(一):并查集相关推荐
- 数据结构-PHP 并查集(Union Find)
文章目录 数据结构-PHP 并查集(Union Find) 1.并查集示意图 2.并查集合并 3.并查集简单的代码示例 3.1 PHP代码定义 3.2 输出演示 数据结构-PHP 并查集(Union ...
- 数据结构 之 并查集
并查集是一种树型的数据结构,其保持着用于处理一些不相交集合(Disjoint Sets)的合并及查询问题. 有一个联合-查找算法(union-find algorithm)定义了两个操作用于此数据结构 ...
- 数据结构之并查集Union-Find Sets
1. 概述 并查集(Disjoint set或者Union-find set)是一种树型的数据结构,常用于处理一些不相交集合(Disjoint Sets)的合并及查询问题. 2. 基本操作 并查集 ...
- 数据结构之并查集:并查集的介绍与Python代码实现——18
并查集的介绍 并查集(Union-find)数据结构也称作合并查找集(Merge-find set)或者不相交集数据结构(disjoint-set data structure),它是一种记录了由一个 ...
- 数据结构 之 并查集(Disjoint Set)
一.并查集的概念: 首先,为了引出并查集,先介绍几个概念: 1.等价关系(Equivalent Relation) 自反性.对称性.传递性. 假设a和b存在等价关系.记 ...
- 数据结构 7并查集(DISJOINT SET)
并查集(The disjoint set ADT) 等价关系 Relation R:若对于每一对元素(a,b),a,b∈S,aRb或者为true或者为false,则称集合S上定义关系R.如果aRb为t ...
- [重修数据结构0x03]并查集、堆、优先队列(2021.8.11)
前言 在做遍历的题目的时候,发现掌握一些特殊的数据结构和技巧有时对解决题目有着决定性的作用,不可不学.因此特地拿出来两天学习一下并查集.堆.优先队列.以后有更多思考和感悟再加补充吧.内容来自算法笔记, ...
- 高阶数据结构(1):并查集 与 图
"Head in the clouds" 一.并查集 (1)认识并查集? 在一些问题中需要将n个不同的元素划分成 一些不想交的集合. 开始时,每个元素自成一个单元素集合,然后按一定 ...
- 【高级数据结构】并查集
目录 A.AcWing 1250. 格子游戏 B.AcWing 1252. 搭配购买 C.AcWing 237. 程序自动分析 D.AcWing 239. 奇偶游戏 E.AcWing 238. 银河英 ...
- 0x41.数据结构进阶 - 并查集
目录 一.路径压缩与按秩合并 1.AcWing 237. 程序自动分析(NOIP2015) 二.边带权并查集 1.AcWing 238. 银河英雄传说(边带权并查集模板) 2.AcWing 239. ...
最新文章
- CentOS7系统启动、排错、修复、破解root口令
- 超级计算机算200p什么意思,超级计算机一万年的运算仅需200秒,量子霸权的神话真的能实现吗?...
- http get post 请求
- 逐步转向自己主动化測试
- MySQL笔记14:常用命令
- Pygame:编写一个小游戏
- 从实例到数理来解析感知机学习算法(PLA)
- Visual Studio 2015和2017里面应该创建哪种 Class Library
- web加载本地html,WKWebview加载本地html问题汇总
- select null and select 1
- jsf入门实例_JSF selectManyListBox示例教程
- Python(42)_文件操作
- 修复VS2010 Beat2的Application cannot start”问题
- shiny datatable child row:shiny表格二级子行的展开与折叠
- c语言函数调用求阶乘和
- 使用Arduino开发ESP32(15):模块基本信息与复位原因获取
- python去除字符串中的单词_从字符串中删除特定单词的最有效方法
- 湖南大学计算机考研科目2020,2020湖南大学计算机与软件工程考研初试科目、参考书目、录取情况全解析...
- layui下拉框联动查询效果
- 80%的人都不知道在Excel中掐头去尾求平均分用这个函数
热门文章
- loadruner知识点小结
- 很久没来这里,今天的评测java怪东西,左右Date类和时间戳转换
- UITextFiled 简介
- 应用程序中的服务器错误
- 庆祝自己通过系分考试,分发资料
- 巩固有私有VLAN和VLAN访问控制列表的网络
- pg库使用dblink连接mysql_PG-跨库操作-dblink
- mysql获取当前时间示范,mysql 实时显示当前运行的sql语句
- python爬虫运行一遍后再运行不成功_python爬虫 - pyspdier run时运行到on_start就停止 但是单步调试可继续...
- 弹性地基梁板实用计算_3款实用性高的农村别墅,造价低,越看越有韵味