随笔分类 - 线段树和树状数组
树状数组查询离散化
摘要:一些概念 在线操作:每读入一个操作方式,就进行一次修改或者输出结果。 离线操作:将所有操作先全部读入存起来,进行处理后再进行修改或者输出结果。 我们很多时候,对线段树或者树状数组都是进行在线操作的,边读入操作边修改。但是用树状数组来解决一些题目时,得依赖离线操作来限制在树状数组内信息的范围。不理解这
树状数组和逆序对
摘要:逆序对的概念 在一个有 $n$ 个元素的数组 $A$ 中,如果存在 $1\le i<j\le n$ ,使得 $A_i>A_j$ ,则称 $(A_i,A_j)$ 为 $A$ 的一个逆序对。我们熟知的排序其实就是一个消灭逆序对的过程。求一个数组的逆序对数目,我们可以用归并排序,或者用我们今天的主角树状数
线段树区间合并+模拟大题
摘要:简述难点 这种题极其友(\(\mathrm{e}\))好(\(\mathrm{xin}\)),基本上就是 \(\mathrm{pushup}\),\(\mathrm{build}\),\(\mathrm{pushdown}\),\(\mathrm{update}\),\(\mathrm{query}
线段树差分及其应用
摘要:简述概念和应用 所谓的差分,其实就是后一项与前一项的差,对于第一项而言,\(a[0] = 0\) 。设数组 \(a[~]=\{1,9,3,5,2\}\) ,那么差分数组$t[~]={1,8,-6,2,-3}$ ,即 \(t[i]=a[i]-a[i-1]\) ,那么, \(a[i]=t[1]+...+
线段树和树状数组学习笔记
摘要:学习了一周的线段树和树状数组,深深地体会到了这每种操作几乎都是 \(\mathcal{O}(logN)\) 级别的数据结构的美,但是做起题来还是相当痛苦的(特别是一开始只会模板的时候,很难灵活运用线段树的性质)。还好有雨巨大神带入门,视频讲解十分直观(b站上也有很多介绍线段树的视频),不用像以前一样
[SCOI2007]降雨量 线段树和区间最值(RMQ)问题
摘要:题目链接P2471 [SCOI2007]降雨量 这道题是比较经典的 \(\mathrm{RMQ}\) 问题,找到 \(X\) 和 \(Y\) 年间的最值来进行判断真假 , 用线段树维护是比较简单好写的(不懂线段树的可以看我的另一篇博文入门)。然而这只是一个小判断,比较难的是判断 \(\mathrm{