线段树

Ayanami_Reii2 天前
数据结构·c++·算法·线段树·树状数组·主席树·莫队
区间不同数的个数-树状数组/线段树/莫队/主席树本问题将使用如下数据结构树状数组维护当前数组出现的位置信息, 具体的来说因为 j j j指针只会走一次, 算法时间复杂度 O ( m log ⁡ n ) O(m \log n) O(mlogn)
Ayanami_Reii5 天前
数据结构·算法·线段树·主席树·持久化线段树
详解Splay平衡树如果没了解过线段树, 点击这里首先Splay是平衡二叉树, 也就是该树的中序遍历是有序的, 可以实现查询第 k k k大数, 查询一个数字的前驱和后继
Ayanami_Reii10 天前
数据结构·算法·线段树·主席树·持久化线段树
进阶数据结构应用-SPOJ 3267 D-query要求区间内有多少个不同数字, 可以这样考虑, 对于当前数字 t t t, 我们希望知道 t t t上一次出现的位置在哪, 假设是pre[t]
Ayanami_Reii12 天前
数据结构·算法·线段树·树状数组·离散化·fenwick tree·线段树扫描线
进阶数据结构应用-线段树扫描线计算面积的并集 类似于扫描的思想, 只要是 y y y不连续, 将面积从左到右做细分 设 h 1 = t 0 + t 1 h_1= t_0 + t_1 h1=t0+t1, 同理 h 2 h_2 h2就是下一段的 x x x的差值, 那么总的覆盖面积就是 ∑ i = 1 n h i ⋅ ( y i − y i − 1 ) \sum _{i = 1} ^ n h_i \cdot (y_i - y_{i - 1}) i=1∑nhi⋅(yi−yi−1)
Ayanami_Reii12 天前
数据结构·算法·线段树
进阶数据结构应用-维护序列三个操作线段树需要记录的属性但是延迟标记是有更新顺序的, 可以做如下假设, 假设当前考虑的区间是 [ l , r ] [l, r] [l,r], 加法标记是 a d d add add, 乘法标记是 m u l mul mul
Ayanami_Reii12 天前
数据结构·算法·线段树
进阶数据结构-线段树将一个大的区间递归地分解成若干个不相交的小区间, 并且在分解过程中预先计算出区间的初始信息, 具体的来说, 线段树一般有如下操作
Ayanami_Reii13 天前
数据结构·算法·线段树·延迟标记
进阶数据结构应用-一个简单的整数问题2(线段树解法)定义线段树需要维护的信息sum代表考虑当前节点和子节点上的所有标记的当前区间和, add延迟标记表示给当前区间的所有儿子都加上add
Ayanami_Reii13 天前
开发语言·数据结构·算法·线段树·差分·树状数组·fenwick tree
进阶数据结构应用-区间最大公约数两个操作因为涉及到区间修改和区间查询, 使用线段树 线段树节点信息中需要存储如下信息对于当前区间 u u u, 左儿子是 x x x, 右儿子是 y y y, 那么当前区间的最大公约数等于 u . g c d = gcd ⁡ ( x . g c d , y . g c d ) u.gcd = \gcd(x.gcd, y.gcd) u.gcd=gcd(x.gcd,y.gcd)
nju_spy1 个月前
数据结构·python·算法·leetcode·面试·线段树·笔试
力扣每日一题(四)线段树 + 树状数组 + 差分目录1526. 形成目标数组的子数组最少增加次数 -- 序列差分3479. 水果成篮 III -- 线段树
CUC-MenG2 个月前
数学·算法·线段树·差分·扫描线
2025牛客国庆集训派对day7 M C 个人题解#exgcd #数学Walk Alone 感到口渴,想要喝水。他想要恰好喝 x x x 单位的水,但没有合适的量杯。他只有两个水壶,容量分别为 A A A 和 B B B。他发现可以对这两个水壶进行以下操作:
闻缺陷则喜何志丹3 个月前
数据结构·c++·线段树·懒删除堆
【线段树 懒删除堆】P12372 [蓝桥杯 2022 省 Python B] 最优清零方案|普及+C++线段树 C++堆(优先队列)给定一个长度为 N N N 的数列 A 1 , A 2 , ⋯   , A N A_1, A_2, \cdots, A_N A1,A2,⋯,AN。现在小蓝想通过若干次操作将这个数列中每个数字清零。
闻缺陷则喜何志丹3 个月前
数据结构·c++·蓝桥杯·线段树·洛谷
【 线段树】P12347 [蓝桥杯 2025 省 A 第二场] 栈与乘积|普及+目前测试数据可能较水,我们之后会加强数据。给定一个栈,给出若干次如下类型的操作:输入的第一行包含一个正整数 Q Q Q,表示操作次数。
CUC-MenG4 个月前
数学·线段树·贪心·dp·线性dp·构造·强联通分量·树上背包·线段树二分
2025牛客多校第十场 K.神奇集合 F.老师和Yuuka逛商场 E.老师与好感度 I.矩阵 个人题解首先考虑有数最受条件的约束,因此尝试令数\(x\)沿着某方向前进\(x\)后回到原地:则有\(x\)为\(n\)的因数
CUC-MenG4 个月前
数学·线段树·高精度·模拟·dp·红黑树·线性dp·平衡树·线段树维护矩阵
2025杭电多校第八场 最有节目效果的一集、最自律的松鼠、最甜的小情侣、最努力的活着 个人题解注意到本题给的\(1\leq n\leq 1e 12\),因此需要使用\(\_\_int 128\)(最大可以存\(2^{128}\))来提高精度
CUC-MenG4 个月前
数学·线段树·差分·扫描线·二维数点·区间最值
2025杭电多校第七场 矩形框选、伤害冷却比 个人题解令\(a=\frac{K}{N}\),则有\(f(x)=x\left( \left\lfloor \frac{a}{x} \right\rfloor +1\right)\) 大致画出图像,可得下图
惆怅客1234 个月前
线段树·icpc·uva·动态开点·“前缀”思想
UVa1480/LA5034 Jewel本题是2010年icpc亚洲区域赛天津赛区的J题Jimmy买了很多颗大小互不相同的珠子用来穿成项链送给他的女朋友,初始时项链是空的。Jimmy会进行4种操作:
ReineRabbit5 个月前
线段树·codeforces·中位数
重生之 CF2126G2. Big Wins! (hard version)本题没有限制\(\text{ a[i]}\) 的大小,也就是没有限制 \(med\) 的大小。第一个想法是枚举 \(\text{min}\) 值,对每一个 \(a_i = min\) 的位置用单调栈或者笛卡尔树计算能保持最小值的 \(l_i\) 和 \(r_i\) ,然后我们考虑这个区间内的 \(med\),复杂度为 \(O(n^2 \log n)\) 。
keysky6 个月前
线段树·slope trick·数形结合
「ABC 406 G」Travelling Salesman Problem本题笔者使用了两种方法来做,一是 \(\text{Slope trick}\) ,二是线段树,皆有讲解,各位读者按需食用。
pystraf7 个月前
数据结构·c++·算法·线段树·洛谷
LG P9844 [ICPC 2021 Nanjing R] Paimon Segment Tree Solution给定序列 a = ( a 1 , a 2 , ⋯   , a n ) a=(a_1,a_2,\cdots,a_n) a=(a1,a2,⋯,an),有 m m m 次修改 ( l , r , v ) (l,r,v) (l,r,v):
pystraf7 个月前
数据结构·算法·线段树·洛谷
P2572 [SCOI2010] 序列操作 Solution给定 01 01 01 序列 a = ( a 1 , a 2 , ⋯   , a n ) a=(a_1,a_2,\cdots,a_n) a=(a1,a2,⋯,an),并定义 f ( l , r ) = [ ( ∑ i = l r a i ) = r − l + 1 ] f(l,r)=[(\sum\limits_{i=l}^r a_i)=r-l+1] f(l,r)=[(i=l∑rai)=r−l+1]. 执行 m m m 个操作,分五种: