树状数组
bifanwen
梦想是遥不可及而奇幻莫测的,它给我全部的力量,它把我叫醒。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
树状数组进阶
博客园同步前置知识:树状数组单点修改,区间修改。差分。下面我们考虑区间修改。一开始我们维护的是部分前缀和,但是现在,区间修改显然不能用前缀和有关的做法。单区间修改用差分就够了。但是这里有修改,考虑将 差分 和 树状数组 结合。令 ccc 为 aaa 的差分,维护 aaa 的区间修改与区间和即可,这样 aaa 就是 ccc 的前缀和了。那么区间修改只需要改 222 个点,单点询问只需要问前缀和。但是区间询问则怎么做?显然,还是用前缀和相减,考虑前缀和。那么考虑一个东西:∑i=原创 2020-08-28 22:06:26 · 218 阅读 · 0 评论 -
LOJ #135. 二维树状数组 3:区间修改,区间查询 题解
博客园同步原题链接前置知识:一维树状数组的区间修改与区间查询。简要题意:维护二维数组的矩阵加与矩阵查。很显然,如果你用 二维线段树 的话,常数较大,加上要开 long long\text{long long}long long,很可能会 MLE + TLE\text{MLE + TLE}MLE + TLE 的双倍快乐。所以我们要用 二维树状数组 解决这道题目。考虑常规前缀和,二维的前缀和需要维护 444 个节点,我们也需要一一维护。原创 2020-06-27 21:29:38 · 881 阅读 · 0 评论 -
P3368 【模板】树状数组 2 题解
博客园同步原题链接前置知识:树状数组的单点修改与区间询问。简要题意:维护数组的区间修改与单点询问。同样类似的,我们用 树状数组 进行操作,对每个区间修改,本质上 是对差分数组的前缀和的维护,而前缀和的维护我们需要用到 树状数组。树状数组以常数小,空间小比线段树好用,好写(但是功能没有线段树多)。所以对每个区间 [l,r][l,r][l,r] ,更新 lll 和 r+1r+1r+1 的差分值即可。时间复杂度:O(nlogn)−O(logn)\mathcal{O}(n \log n) - \原创 2020-06-27 21:23:23 · 283 阅读 · 0 评论 -
P3374 【模板】树状数组 1 题解
博客园同步原题链接给定一个长度为 nnn 的数组,qqq 组操作:将某一个数加上 xxx求出某区间每一个数的和显然,假设你现在什么也不会。我们只考虑第 222 个操作,即先不考虑修改,如何处理区间和的询问?显然,对于初始的数组 aia_iai,只需要做一个前缀和 sss 使得:sj=∑i=1jais_j = \sum_{i=1}^j a_isj=i=1∑jai这样,对于一组询问:∑i=lrai=sr−sl−1\sum_{i=l}^r a_i = s_r - s_{l-原创 2020-06-27 21:18:47 · 271 阅读 · 0 评论
分享