随笔分类 -  数据结构——树状数组

摘要:理论基础 轮换与对换 概念:把 $S$ 中的元素 $i_1$ 变成 $i_2$,$i_2$ 变成 $i_3$ ... $i_k$ 又变成 $i_1$,并使 $S$ 中的其余元素保持不变的置换称为循环,又称轮换,记为 $(i_1, i_2,...,i_k)$,$k$ 称为循环长度,特别地,循环长度为2 阅读全文
posted @ 2019-07-31 22:09 Rogn 阅读(817) 评论(0) 推荐(0) 编辑
摘要:题目 链接 $Reki$ 在课余会接受一些民间的鹰眼类委托,即远距离的狙击监视防卫.。$Reki$ 一共接收到$m$份委托,这些委托与 $n$ 个直线排布的监视点相关。第 $i$ 份委托的内容为:对于区间 $[r_i, \ j_i]$ 中的监视点,至少要防卫其中的 $k_i$ 个点。$Reki$ 必 阅读全文
posted @ 2019-07-15 17:09 Rogn 阅读(273) 评论(0) 推荐(0) 编辑
摘要:数值统计:任意给定一个集合$a$,如果用$t[val]$保存数值$val$在集合中出现的次数,那么数组$t$在$[l,r]$上的区间和(即$\sum_{i=l}^{r} t[i]$)就表示集合$a$中范围在$[l,r]$内的数有多少个。 我们可以在集合$a$的数值范围上建立一个树状数组,来维护$t$ 阅读全文
posted @ 2019-06-25 16:20 Rogn 阅读(810) 评论(0) 推荐(0) 编辑
摘要:平常我们会遇到一些对数组进行维护查询的操作,比较常见的,修改某点的值、求某个区间的和。 即给定一个n个元素的数组$A_1、A_2、..., A_n$,你的任务是设计一个数据结构,支持以下两种操作: 如果按简单的前缀和处理,修改操作是$O(1)$,区间查询操作是$O(n)$,当操作次数为m时,最坏的时 阅读全文
posted @ 2019-04-04 15:24 Rogn 阅读(545) 评论(0) 推荐(0) 编辑