![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
总结
文章平均质量分 71
t_t_0000
这个作者很懒,什么都没留下…
展开
-
树状数组整理(2.区间修改、二维)
1.区间整体加一个数,单点求值: 已经很常用的方法了,就当成有多少线段覆盖,对a[l,r]+k的操作转化为对辅助数组b[l]+k,b[r+1]-k,树状数组维护b[i]前缀和就好…… 具体来说,是对a[i]差分后生成新数组b[i],使得b[i]=a[i]-a[i-1],这样成段修改时: 对ir+1,a[i]值不变故b[i]不变;l 但b[l]'=(a[l]+k)-a[l-1原创 2013-03-29 21:37:42 · 1305 阅读 · 2 评论 -
树状数组整理(1.基本原理)
//树状数组简写BIT,原名Binary Indexed Tree,直译似乎是二叉索引树?…… 先来提一下lowbit,我们定义lowbit(x)是x的二进制中最右端的1连同后面所有的0构成的这么一个二进制数 比如……我们算一下lowbit(2222)吧,2222对应二进制是100010101110,最右端的1带上后面0那就是10(二进制),换算成十进制就是2,那么lowbit(222原创 2013-03-26 22:42:51 · 725 阅读 · 2 评论 -
树状数组整理(3.RMQ问题)
邪道,以下内容纯属娱乐 我们先前的各种基于BIT的应用和变形,都还是围绕BIT维护前缀和展开的,而区间信息则依赖于前缀和(区间和)的良好性质——支持区间减法,所以我们可以把区间拼接起来再做减法 SegT不一样,它维护的信息最后都是通过区间加法整合到一起,所以它可以搞RMQ,BIT只能默默抹泪……想处理RMQ,只能学习SegT用维护的区间信息直接拼出目标区间,用纯区间加法来维护,而不能求前缀原创 2013-03-30 23:12:31 · 837 阅读 · 2 评论 -
树状数组整理(4.冒牌平衡树)
算是一种应用吧……水过某些题的时候可以一试? 平衡树一般支持插入、删除、查找、排名、k小、前驱、后继什么的…… 单看插入删除查找,都是离散一下计数就可以做到的;排名可以转化为求比查询元素小的数有多少个;k小也许可以利用排名来搞;至于前驱后继也可以转化为先排名后k小的问题 因为可以离散嘛,不妨直接讨论所有参与操作的数字都在1..n的状况: 前三样加加减减白给的,一个a[1..n]++--搞定原创 2013-03-31 20:45:49 · 1111 阅读 · 2 评论