
数据结构
文章平均质量分 88
搞数据结构的
zero_orez6
这个作者很懒,什么都没留下…
展开
-
[分块] 分块入门1~4
何为分块在学习完线段树和树状数组后,这两种数据结构已经能够解决大部分的问题了,但在使用过程中不难发现他们的缺点树状数组O((N+M)logN)O((N+M)logN)O((N+M)logN):局限性过大,不易扩展到普遍性题目线段树O((N+M)logN)O((N+M)logN)O((N+M)logN):虽然能够扩展到许多题目,其也有许多类型,但不够直观,并且代码长,细节多…分块应运而生分块的基本思想是通过适当的划分,预处理一部分信息并保存下来,用空间换取时间,达到"时空平衡" ———《算法竞原创 2021-06-29 16:04:22 · 452 阅读 · 0 评论 -
[数据结构]并查集
定义并查集(Disjoint-Set)是一种可以动态维护若干个不重叠的集合,并支持合并和查询的数据结构,详细的说,并查集基本包括两个操作Get 查询一个元素属于哪一个集合Merge 把两个集合合并为一个大集合解释相信大多数人看了上面的官方语言都满头雾水,其实为了实现这种数据结构,我们用一个固定的元素来代表某个集合,对于一些归属关系,我们则可以用一个树形结构来存储每个集合,树上的每个节点代表每个元素,树根就是这个集合的代表元素。为便于理解,做个形象的比喻,将每个节点比作许多人,节点所属的集原创 2021-06-02 14:10:02 · 125 阅读 · 0 评论 -
线段树合集
1.线段树基本概念及模板2.线段树基础例题3.线段树扩展操作——懒标记4.线段树扩展操作——懒标记例题待作者补充…原创 2021-04-22 18:31:01 · 250 阅读 · 0 评论 -
[数据结构] 树状数组
前言745 …lowbit操作对于lowbitlowbitlowbit的定义为"非负整数nnn在二进制表示下最低位的1及其后面所有的0"所构成的数值,例如:当n=12n=12n=12时,12=(1100)212=(1100)_212=(1100)2,所以lowbit(12)=(100)2=4lowbit(12)=(100)_2=4lowbit(12)=(100)2=4那么如何实现lowbitlowbitlowbit操作呢?先将n取反,此时第k为变为1,第0~k-1位变为1,再令n=n+1,此时原创 2021-05-13 21:41:47 · 229 阅读 · 0 评论