
线段树
文章平均质量分 52
阿克劳斯
太阳就在眼前,何须留恋蜡烛
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
java_acm 洛谷 - P3372 【模板】线段树 1
P3372 【模板】线段树 1模板很简单,cpp转java很头疼import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.PrintWriter;import java.io.StreamTokenizer;import java.math.BigInteger;impo原创 2021-10-14 17:22:40 · 277 阅读 · 0 评论 -
洛谷Luogu - P3373 线段树 2(区间乘)
Link关于先乘后加,还是先加后乘的一点个人理解,举个栗子,为了方便理解,我们举单点而不是区间为例,两者是等价的:对于一个节点:struct Node{ int l,r; int sum; int add,mul;}里面存储的信息有add和mul,比如我们现在要计算出节点a的真实值并清空a的懒标记,有两种计算方式a×mul+adda \times mul +adda×mul+add,向下传时:(a×mul+add)×mul′+add′(a \times mul +add)\time原创 2021-09-16 15:48:49 · 115 阅读 · 0 评论 -
LOJ - 132 线段树,区间修改,区间查询
题目链接大致讲解如果采用单点修改的方式,对需要修改区间的每一个叶子节点都进行修改,并且pushup(),时间复杂度会达到O(n)O(n)O(n)所以只需要对某个区间添加一个add成员(也就是懒标记),代表此节点所有的子节点都会进行修改*(此节点可修改,也可不修改,只要前后对应即可)*,具体操作为:// 对于一个节点root,和它的左孩子left、右孩子rightleft.add += root.add;left.sum += left.sum + (left.r - left.l + 1) *原创 2021-09-12 22:14:26 · 200 阅读 · 0 评论