随笔分类 -  树状数组/线段树

摘要:摩尔投票法 绝对众数 :数列内出现次数超过数列长度一半的数。 摩尔投票法是一个求绝对众数的利器。 例题 1. 洛谷 P2397 yyy loves Maths VI (mode) 摩尔投票法板子题。 假设现在有一个小房子,有一个新的数 $x$ 需要进来。 如果房子是空的,那么 $x$ 就直接进去; 阅读全文
posted @ 2022-09-04 14:49 zltzlt 阅读(188) 评论(1) 推荐(0)
摘要:洛谷传送门 CF 传送门 思路 路径最值想到 $\mathrm{Kruskal}$ 重构树,则求最大权值就是求 $\mathrm{LCA}$ 的点权。 多个点的 $\mathrm{LCA}$ 就是 $\mathrm{dfs}$ 序最小和 $\mathrm{dfs}$ 序最大的点的 $\mathrm{ 阅读全文
posted @ 2022-07-28 21:08 zltzlt 阅读(37) 评论(0) 推荐(0)
摘要:洛谷传送门 CF 传送门 思路 考虑离线,按时间倒序进行操作,删边变成加边。 然而若按时间倒序进行操作,就不知道哪些点已经 $p_u = 0$ 了。. 可以按加边的顺序建出 $\mathrm{Kruskal}$ 重构树。则可以倍增找到在 $t$ 时刻连通的祖先,它的所有叶子子结点即为在 $t$ 时刻 阅读全文
posted @ 2022-07-28 21:04 zltzlt 阅读(45) 评论(0) 推荐(0)
摘要:洛谷传送门 CF 传送门 思路 考虑将每条边的编号作为边权,然后建 $\mathrm{Kruskal}$ 重构树。 那么每个询问的答案即为 $\mathrm{LCA}(l,l+1,...,r-1,r)$。 有一个经典套路,就是多个点的 $\mathrm{LCA}$ 就是 $\mathrm{dfs}$ 阅读全文
posted @ 2022-07-28 20:55 zltzlt 阅读(38) 评论(0) 推荐(0)
摘要:洛谷传送门 POJ 传送门 一眼点分治。 当递归到结点 $u$ 时,计算出子结点 $v$ 的子树内,所有结点和 $u$ 的距离。然后与之前的合并并计算答案即可。使用树状数组,时间复杂度 $O(n \log n \log k)$,空间复杂度 $O(n + k)$。 code /* p_b_p_b tx 阅读全文
posted @ 2022-07-26 20:20 zltzlt 阅读(60) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2022-07-18 20:05 zltzlt 阅读(0) 评论(0) 推荐(0)
摘要:洛谷传送门 一道线段树维护区间前缀最大值个数的好题。 思路 易得连接 $(0,0),(i,H_i)$ 的线段斜率为 $s_i = \frac{H_i}{i}$。则题要求的就是满足 $i \in [1,n], s_i > \max\limits_{j=1}^{i-1} s_j$ 的 $i$ 的个数。考 阅读全文
posted @ 2022-07-16 18:19 zltzlt 阅读(60) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2022-07-15 16:41 zltzlt 阅读(1) 评论(0) 推荐(0)
摘要:洛谷传送门 CF 传送门 Yet Another God Problem 思路 对于这种矩形覆盖的问题,一般考虑扫描线+线段树。 首先离散化坐标。扫描 $x$ 轴,对 $y$ 轴建线段树。离散化后设 $y$ 轴有 $tot$ 个端点,则有 $tot - 1$ 个区间,在线段树上每个叶子节点维护的实际 阅读全文
posted @ 2022-07-14 16:41 zltzlt 阅读(39) 评论(0) 推荐(0)
摘要:洛谷传送门 CF 传送门 思路 边权为 $1$ 的最短路问题,可使用 BFS 求解。当目前搜到点 $u$ 时,瓶颈在于找出所有边 $u \to v$,若 $v$ 没被访问过就入队。 下面的部分和 [JOISC2020] 治療計画 有点像。考虑先拆限制中的绝对值。 若 $u < v$ ,则 $v - 阅读全文
posted @ 2022-07-14 09:19 zltzlt 阅读(77) 评论(0) 推荐(0)
摘要:洛谷传送门 CF 传送门 思路 显然线段树。每个节点存最左端的列的并查集和最右端的列的并查集,并且维护这个节点中连通块的数量。merge 时先将 $res$ 的连通块数量设为两个子结点的连通块数量之和,然后合并左儿子最右端的列的并查集和右儿子最左端的列的并查集,如果合并成功则 $res \gets 阅读全文
posted @ 2022-07-03 16:13 zltzlt 阅读(46) 评论(0) 推荐(0)
摘要:洛谷传送门 LOJ 传送门 思路 对 $S_1,S_2,...,S_n$ 建出 AC 自动机并建出 $\mathrm{fail}$ 树。对于每次新加入的 $P$,考虑计算它对答案的贡献。 考虑在 AC 自动机上匹配的过程。加入一个 $P$,设它在 AC 自动机上从根结点开始的链经过 $p_1,p_2 阅读全文
posted @ 2022-07-02 22:25 zltzlt 阅读(66) 评论(0) 推荐(0)
摘要:洛谷传送门 CF 传送门 KMP 好题。 思路 合法的子区间其实就是原串的 $\mathrm{border}$,考虑维护 $\mathrm{border}$ 的集合。每次加入一个字符,就保留原来合法的 $\mathrm{border}$ 并加入新的合法 $\mathrm{border}$(如果 $s 阅读全文
posted @ 2022-07-02 12:42 zltzlt 阅读(43) 评论(0) 推荐(0)
摘要:洛谷传送门 CF 传送门 思路 类比 洛谷 P2414 / LOJ 2444 「NOI2011」阿狸的打字机 。如果做过那题,那这题就很简单了。 首先把 $[l,r]$ 拆成 $[1,l-1]$ 和 $[1,r]$。设 $a_i$ 为第 $i$ 个字符串在 AC 自动机上的终止结点。仍然考虑在 AC 阅读全文
posted @ 2022-06-26 15:20 zltzlt 阅读(21) 评论(0) 推荐(0)
摘要:洛谷传送门 SPOJ 传送门 思路 看到去重想到离线。将所有询问按右端点升序排序。设 \(lst_i\) 为 \(a_j = a_i\) 且 \(j < i\) 的最大 \(j\),若不存在则 \(lst_i = 0\)。\(b_j\) 表示 \(\sum\limits_{k=j}^i a_k\), 阅读全文
posted @ 2022-06-26 13:04 zltzlt 阅读(36) 评论(0) 推荐(0)
摘要:洛谷传送门 LOJ 传送门 思路 首先套路地建 AC 自动机,并存下每一行的终止结点,记为 \(a_x\)。 考虑在 AC 自动机上匹配的过程,\(x\) 在 \(y\) 中出现的次数就相当于在 Trie 树上 \(a_y\) 到根结点的链上,每个结点都不断跳 fail,有多少个结点是 \(a_x\ 阅读全文
posted @ 2022-06-22 07:48 zltzlt 阅读(59) 评论(0) 推荐(0)
摘要:洛谷传送门 LOJ 传送门 思路 令 \(|S| = n\)。首先求出 \(S\) 的 \(\mathbf{Z}\) 函数数组 \(nxt\),考虑将 \(AB\) 视作一个整体的循环节,那么长度为 \(i\) 的循环节最多可以接上 \(\left\lfloor\dfrac{nxt_{i+1}}{i 阅读全文
posted @ 2022-06-21 20:41 zltzlt 阅读(137) 评论(0) 推荐(0)
摘要:洛谷传送门 SPOJ 传送门 题意 给定 \(N\) 个非负整数 \(A_1,A_2,...,A_N\) 和 \(Q\) 组询问 \((v_j,a_j,b_j)\),对于第 \(j\) 组询问,你需要回答满足 \(1 \le l \le r \le N\) 且 \(a_j \le r - l + 1 阅读全文
posted @ 2022-06-21 12:34 zltzlt 阅读(87) 评论(0) 推荐(0)