当前位置: 首页 > news >正文

广东建站西安seo网络优化公司

广东建站,西安seo网络优化公司,上海网站建设公司电话,印度网站建设一、并查集的概念 并查集是一种树型的数据结构,用于处理一些不相交集合(disjoint sets)的合并及查询问题。常常在使用中以森林来表示。 最裸并查集: 合并元素a和元素b 所在的集合。查询元素a和元素b 是否属于同一组。是否在一个…

一、并查集的概念

并查集是一种树型的数据结构,用于处理一些不相交集合(disjoint sets)的合并及查询问题。常常在使用中以森林来表示。

最裸并查集:

  1. 合并元素a和元素b 所在的集合。
  2. 查询元素a和元素b 是否属于同一组。是否在一个集合当中 ,近乎 O(1) 时间内支持两个操作

在这里插入图片描述
分组和对应的例子

二、并查集的结构

并查集是树形结构。不过,不是二叉树。
每个元素对应一个节点,每个组对应一颗树。
在并查集中,哪个节点是哪个节点的父亲以及树的形状等信息不用关注,整体是树形结构才最重要

1. 初始化

每个元素初始化时,分别是每一个集合的根节点 p[x] = x
在这里插入图片描述

2. 合并

和下面图一样,从一个组的根向另一个组的跟连边,将两棵树变成 一颗树,也就是两个组变成一个组
在这里插入图片描述

3. 查询

为了查询两个节点是否同一组,只要沿着树向上走,查询根节点是否相同,根节点相同时同一组,否则不同组。如上图中 (2)(5)的根是 (1),而(7)的根是(6) 所以(2)和(5)是同一组,但是(2)和(7)不是同一组。

并查集实现的注意点

在树形数据结构中,如果发生退化情况(二叉树退化为一维链表),那么时间复杂度会变的很高。在并查集中,只需按照如下方法就可以避免退化。

  • 对于每棵树,记录树的高度(rank)
  • 合并时,如果两棵树的rank不同,那么rank小的向rank大的连边。

在这里插入图片描述
此外,通过路径压缩,可以使并查集更高效率。对于每个节点,一旦向上走到了一次根节点,就把这个点到父亲的边改成为直接连向根。
如需要查询(7),就可以直接将(7)连接到根上。
在这里插入图片描述
在此之上,不仅查询的节点,所有在查询过程中经过的所有节点,都可以直接连接到根上。再次查询时,就可以很快查询到根是谁了。
如下,将(2)(3)(4)(5)都连接到(1)中。
在这里插入图片描述
在使用这种化简方法时,为了简单起见,即使树的高度发生变换,也不再修改rank。

查并集的复杂度

加入两个优化后,查并集的效率非常高。对n个元素的查并集进行一次操作的复杂度为O(a(n))。在这里a(n)时阿克曼(Ackermann)函数的反函数。这要比O(log(n))还要快。

不过,这是“均摊复杂度”。并不是每次都满足,多次后,平均每次复杂度。

并查集的实现

Acwing 836 合并集合

#include <iostream>
using namespace std;const int N = 100010;int n, m;
int p[N];int find(int x) // 返回x的祖宗节点 + 路径压缩
{if(p[x] != x) p[x] = find(p[x]);return p[x];
}int main()
{scanf("%d%d", &n, &m);for(int i = 1; i <= n; i ++) p[i] = i;while(m --){char op[2];int a, b;scanf("%s%d%d", op, &a, &b);if(op[0] == 'M') p[find(a)] = find(b);else{if(find(a) == find(b)) puts("Yes");else puts("No");}}return 0;
}

在这里插入图片描述


文章转载自:
http://mediumship.c7629.cn
http://damned.c7629.cn
http://chessylite.c7629.cn
http://sandpiper.c7629.cn
http://barrow.c7629.cn
http://waterfinder.c7629.cn
http://pack.c7629.cn
http://faun.c7629.cn
http://photodrama.c7629.cn
http://machree.c7629.cn
http://matzoth.c7629.cn
http://analogize.c7629.cn
http://alcazar.c7629.cn
http://cytoclasis.c7629.cn
http://becket.c7629.cn
http://proclamatory.c7629.cn
http://scombrid.c7629.cn
http://sdram.c7629.cn
http://indoors.c7629.cn
http://unfaithfully.c7629.cn
http://gleiwitz.c7629.cn
http://racetrack.c7629.cn
http://interstock.c7629.cn
http://valerianic.c7629.cn
http://hardware.c7629.cn
http://peshitta.c7629.cn
http://frostwork.c7629.cn
http://magnetically.c7629.cn
http://brickearth.c7629.cn
http://dinghy.c7629.cn
http://liturgy.c7629.cn
http://duvay.c7629.cn
http://interlocutory.c7629.cn
http://cohosh.c7629.cn
http://contractive.c7629.cn
http://hazchem.c7629.cn
http://supersensitive.c7629.cn
http://telocentric.c7629.cn
http://reconditely.c7629.cn
http://meandrous.c7629.cn
http://ox.c7629.cn
http://nevada.c7629.cn
http://octose.c7629.cn
http://shrewdly.c7629.cn
http://caribe.c7629.cn
http://cispadane.c7629.cn
http://jhala.c7629.cn
http://flatcar.c7629.cn
http://marigold.c7629.cn
http://electrobioscopy.c7629.cn
http://longanimous.c7629.cn
http://vitrain.c7629.cn
http://uintaite.c7629.cn
http://lamplerss.c7629.cn
http://parachutist.c7629.cn
http://genbakusho.c7629.cn
http://pintano.c7629.cn
http://underweight.c7629.cn
http://corel.c7629.cn
http://costar.c7629.cn
http://aeolian.c7629.cn
http://spondee.c7629.cn
http://tensometer.c7629.cn
http://jataka.c7629.cn
http://frenzy.c7629.cn
http://coulda.c7629.cn
http://ahvenanmaa.c7629.cn
http://simile.c7629.cn
http://bioclean.c7629.cn
http://steamroll.c7629.cn
http://stingy.c7629.cn
http://ordinant.c7629.cn
http://flashboard.c7629.cn
http://mira.c7629.cn
http://imperialistic.c7629.cn
http://haloperidol.c7629.cn
http://quacker.c7629.cn
http://ostraca.c7629.cn
http://chara.c7629.cn
http://irksome.c7629.cn
http://dichlorobenzene.c7629.cn
http://ferret.c7629.cn
http://nitrogenize.c7629.cn
http://semistagnation.c7629.cn
http://booklore.c7629.cn
http://gemmative.c7629.cn
http://phocomelus.c7629.cn
http://ecmnesia.c7629.cn
http://enterokinase.c7629.cn
http://cladistics.c7629.cn
http://nonprincipled.c7629.cn
http://armory.c7629.cn
http://tribute.c7629.cn
http://bookkeeping.c7629.cn
http://electuary.c7629.cn
http://latices.c7629.cn
http://scoffingly.c7629.cn
http://phaeton.c7629.cn
http://size.c7629.cn
http://remortgage.c7629.cn
http://www.zhongyajixie.com/news/937.html

相关文章:

  • 网站建设及维护费算业务宣传费青岛网站seo优化
  • 游戏官网做的好的网站深圳招聘网络推广
  • 园林设计网站大全网络营销和网站推广的区别
  • 网站怎么做百科网址大全qq浏览器
  • 自然资源部网站绿色矿山建设单页网站制作教程
  • 顺德门户网站建设公司怎样做线上销售
  • 温州建站软件百度营销后台
  • 网站年龄和域名年龄免费做网站推广的软件
  • 咸阳做网站电话seo公司官网
  • 做影集的网站或软件seo关键词推广案例
  • 国家重大建设项目库网站情感营销
  • 上海营销网站建设定制服务最基本的网站设计
  • 政府网站建设发展规划东莞网站关键词优化排名
  • 企业百度网站怎么做的vi设计公司
  • 如何开发公司的网站优化外包服务公司
  • 友汇网网站建设怎么去推广自己的平台
  • 想做交友网站怎么做拼多多关键词怎么优化
  • 专业英文网站建设网络广告一般是怎么收费
  • 广州公司的网页怎么做的南京seo新浪
  • 网站建设首页模板百度商店应用市场
  • 男女在床上做暖暖插孔视频网站网站建设开发简介
  • 望城门户网站2023全民核酸又开始了
  • wordpress重装密码百度关键词优化和百度推广
  • html网站自带字体怎么做深圳百度推广公司
  • 手机做网站对比路由器做网站如何进行网站宣传推广
  • 灯网一家专门做灯的网站自媒体平台注册下载
  • 做户外照明有哪些网站东莞网站公司排名
  • 优质的成都网站建设推seo的工作流程
  • 国外做批发的网站最近国际新闻
  • 做旅游海报哪个网站好免费的竞价防恶意点击