数据结构
f
★漂浮ing☆
奋斗ing
展开
-
并查集总结
什么叫并查集? 并查集(union-find set)是一种用于分离集合操作的抽象数据类型。它所处理的是“集合”之间的关系,即动态地维护和处理集合元素之间复杂的关系,当给出两个元素的一个无序对(a,b)时,需要快速“合并”a和b分别所在的集合,这其间需要反复“查找”某元素所在的集合。“并”、“查”和“集”三字由此而来。在这种数据类型中,n个不同的元素被分为若干组。每组是一个集合,这种集合叫做分离集合(disjoint set)。并查集支持查找一个元素所属的集合以及两个元素各自所属的集合的合并。 适用原创 2020-07-07 10:30:07 · 240 阅读 · 0 评论 -
线段树总结
【概述】 线段树是一种二叉搜索树,其存储的是一个区间的信息,每个结点以结构体的形式去存储,每个结构体包含三个元素:区间左端点、区间有端点、该区间要维护的信息(视实际情况而定),其基本思想是分治的思想。 特点: 每个节点的左孩子区间范围为 [l,mid],右孩子为 [mid+1,r] 对于结点 k,左孩子结点为 2*k,右孩子为 2*k+1,符合完全二叉树的性质 结构图: 基本操作: 主要有 5 个:建树、单点查询、单点修改、区间查询、区间修改 结构: struct node{ ...原创 2020-05-12 16:44:10 · 141 阅读 · 0 评论 -
小朋友排队(树状数组)
问题描述 n 个小朋友站成一排。现在要把他们按身高从低到高的顺序排列,但是每次只能交换位置相邻的两个小朋友。 每个小朋友都有一个不高兴的程度。开始的时候,所有小朋友的不高兴程度都是0。 如果某个小朋友第一次被要求交换,则他的不高兴程度增加1,如果第二次要求他交换,则他的不高兴程度增加2(即不高兴程度为3),依次类推。当要求某个小朋友第k次交换时,他的不高兴程度增加k。 请问,要让...原创 2020-03-03 16:00:57 · 831 阅读 · 1 评论 -
树状数组
树状数组是一种支持单点修改和区间查询的数据结构, 结构如下(用二进制表示,方便查看): 先定义一个函数lowbit(i)这个函数返回的值就是i的二进制下从右到左的第一个1保留其他全部变为0所对应的数值,举个例子:14的二进制1110,我们把从右到左的第一个1保留,其他全变为0就是0010,值也就是2,我们发现如果i+lowbit(i)得到的数就是它父亲的位置,i-lowbit(i)就可以...原创 2020-02-29 14:59:46 · 120 阅读 · 0 评论