
线段树
文章平均质量分 63
__LazyCat__
老子打的就是精锐
展开
-
线段树合并经典例题(3)
线段树合并原创 2022-04-04 21:30:03 · 1267 阅读 · 0 评论 -
线段树合并经典例题(2)
线段树合并差分原创 2022-04-03 11:44:18 · 741 阅读 · 0 评论 -
线段树合并经典例题(1)
线段树合并:最大出现次数的数字和原创 2022-04-03 11:30:58 · 1046 阅读 · 0 评论 -
牛客练习赛96 C.小y的序列
单调栈+线段树链接:C-小y的序列_牛客练习赛96 (nowcoder.com)题意:给定序列 a ,求序列 a 的 (n+1)∗n2\frac{(n+1)*n}{2}2(n+1)∗n 个区间中有多少个区间满足区间最大值和区间最小值的差为 k 。题解:先特殊处理 k 为 0 的情况。然后从左到右枚举所有区间左端点,那么对于一个固定的左端点而言,其左端点越往左,那么区间最大值会越大,区间最小值也会越小。可以用单调栈来表达这一过程。维护两个单调栈,当加入一个新点时,也就是 r 往右移了一位,这时对于最小原创 2022-02-28 16:14:20 · 499 阅读 · 0 评论 -
Codeforces Round #675 (Div. 2)F. Boring Queries
区间 lcm(区间更新,单点查询可持久化线段树)链接:Problem - F - Codeforces题意:给定序列 a,求多次询问区间 [l,r][l,r][l,r] 的 lcmlcmlcm,强制在线。题解:考虑非强制在线的做法,将所有询问排序,对于区间右端点为 r 的点,处理其所有左端点 lil_{i}li,可以用线段树来维护区间乘积,然后查询各个区间的乘积即可。考虑 lcmlcmlcm 本质上是求出所有质因子的最大次幂的乘积,由于左端点越靠前区间越长,则所有质因子的次方只会只增不减,答案会越大原创 2022-02-22 14:41:42 · 201 阅读 · 0 评论 -
P 哥的桶(线段树+线性基)
线段树维护线性基。原创 2022-01-25 22:16:49 · 217 阅读 · 0 评论 -
洛谷 P4513 小白逛公园
题意对于一条序列支持两种操作,一种是单点修改,另一种是查询某个区间内的最大子段和。算法分析单一的最大子段和的复杂度是 O(n)O(n)O(n) 级别的,但是如果是多次询问下,用原来 O(n)O(n)O(n) 方法求m次那复杂度 O(nm)O(nm)O(nm) 妥妥爆炸。这时可以考虑用线段树来维护某个区间的最大子段和。具体做法对于每个树节点,需要有区间和 www,区间最大子段和 vvv,以序列左端点和右端点为开头的 lwlwlw 和 rwrwrw。前面两个很好理解,但后面两个为什么一定要以左端点或原创 2021-07-16 13:49:32 · 115 阅读 · 0 评论 -
洛谷 P4145 上帝造题的七分钟 2 / 花神游历各国
线段树解法本题对区间求根号,因为不存在sqrt(∑i=1nai)=∑i=1nsqrt(ai)sqrt(\sum_{i=1}^{n}a_{i})=\sum_{i=1}^{n}sqrt(a_{i})sqrt(∑i=1nai)=∑i=1nsqrt(ai) 的优秀性质,所以每一次的区间修改都要递归到叶子节点,也无法打出懒标记。因为父亲节点的值需要子节点的值来确定,无法一次性算出。可行性解释那这种递归到叶节点的修改方式复杂度岂不是爆炸?还不如不建树呢?其实不是这样的,对于一个 intintint 范围内原创 2021-07-16 10:42:21 · 136 阅读 · 0 评论