
线段树
文章平均质量分 62
bifanwen
梦想是遥不可及而奇幻莫测的,它给我全部的力量,它把我叫醒。
展开
-
LOJ #145. DFS 序 2 题解
博客园同步原题链接板子题。考虑深搜,确定每个点的时间戳(即搜索顺序的编号吧)dfn\operatorname{dfn}dfn,然后记录 size\operatorname{size}size 表示子树大小。为方便进一步叙述,Tree\operatorname{Tree}Tree 表示子树集。时间戳的性质,其中有一: ∀v∈Tree(u)\forall v \in \operatorname{Tree}(u)∀v∈Tree(u),dfn(u)≤dfn(v)<dfn(u)+siz(u原创 2021-07-28 22:14:56 · 267 阅读 · 0 评论 -
P2574 XOR的艺术 题解
博客园同步原题链接简要题意:给定一个长度为 nnn 的 010101 序列 aaa,qqq 次操作:对 [l,r][l,r][l,r] 区间进行异或操作(即 0←1,1←00 \gets 1, 1 \gets 00←1,1←0)询问 [l,r][l,r][l,r] 区间中 111 的个数。n,q≤2×105n,q \leq 2 \times 10^5n,q≤2×105.算法一 分块显然 O(nq)\mathcal{O}(nq)O(nq) 的暴力是不可能通过这道题目的。考虑如何分块。令原创 2020-07-19 11:54:53 · 257 阅读 · 0 评论 -
P6477 [NOI Online #2 提高组]子序列问题(民间数据) 题解
博客园同步原题链接简要题意:给定 nnn 个数 aia_iai,求 ∑l=1n∑r=ln(fl,r)2\sum_{l=1}^n \sum_{r=l}^n (f_{l,r})^2∑l=1n∑r=ln(fl,r)2,fl,rf_{l,r}fl,r 为 al,al+1⋯ara_l , a_{l+1} \cdots a_ral,al+1⋯ar 中 不重复数 的个数。NOI ...原创 2020-04-26 21:33:37 · 406 阅读 · 0 评论 -
P3919 【模板】可持久化数组(可持久化线段树/平衡树) 题解
原题链接前置知识:线段树区间询问 / 修改简要题意:维护历史版本上的询问,修改。首先,如果只有 111 个版本(即保证 vi=1v_i = 1vi=1),那么我们可以用 朴素的线段树 解决。 题目没给这个部分分你怎么说呢那么,一种思路就有了:既然是 mmm 个历史版本,我就先开 mmm 个一模一样的线段树。然后每次修改都是 O(logn)O(\log n)O(logn),查询就...原创 2020-04-04 15:39:12 · 317 阅读 · 2 评论 -
P3373 【模板】线段树 2 题解
原题链接前置知识:线段树 区间查询 / 区间修改简要题意:维护数组的区间加,乘,区间和。首先,如果没有乘的话,直接把 P3372 【模板】线段树1 的代码复制过来进行了。那么,你会说:那多简单,用两个标记,然后加的时候改加,乘的时候改乘。真的是这样的吗?是还用我跟你讲啊不是。比方说,一个区间原来的和是 aaa.假设给它依次打上 +2+2+2,×3\times 3×3,+4+...原创 2020-04-04 15:09:26 · 495 阅读 · 2 评论 -
P3372 【模板】线段树 1 题解
原题链接简要题意:维护一个数组的区间修改,区间查询。关于区间问题,其实有很多不错的算法。当然 树状数组 也可以解决,不过为了给 后一道模板 做铺垫,我们将本题作为 线段树 的模板题讲解。线段树什么?顾名思义,每个节点都维护了一个线段的信息,并且 线段树是一棵完全二叉树 。比方说:其中每个节点上写的三个数分别表示:节点编号,区间左端点,区间右端点 。有些节点只写了 节点编号 ,因为它...原创 2020-04-03 17:14:48 · 885 阅读 · 0 评论