摘要:# T3 Circle of digits 首先容易发现,分割字符串一定是分割成 $K - \left\lfloor \dfrac{N}{K}\right\rfloor \times K$ 个长度为 $len = \left\lceil \dfrac{N}{K}\right\rceil$ 的和 $\
阅读全文
摘要:$LCT$,即 $Link~Cut~Tree$,一般用于维护森林,相对于树链剖分来说,支持更多的操作,例如加边删边,链区间翻转。 ## 实链剖分 $LCT$ 以实链剖分的方式维护的森林。 一棵树的实链剖分满足: - 树中一条边需要要么是实边,要么是虚边。 - 对于任意一个节点 $u$,其连向所有儿子
阅读全文
摘要:## 前言 ## 整体二分 整体二分是二分一种类型,其运用了分治思想来将二分拓展到多个询问。 整体二分更多是一种思想,而非特定算法,所以我们用题目的方式引入。 ### 题目 > 给定一个 $n$ 个数的数组 $a$。 > $q$ 次询问,每次求 $a$ 中第 $k_i$ 小的值。 显然,~~此题一个
阅读全文
摘要:WQS 二分取消一类题目的限制条件,代价是 $O(\log n)$ 的时间复杂度。 首先,WQS二分用于解决什么问题? 我们先看一个~~难~~题: ## 题目 > 有一个 $n$ 个数的数组 $a$。 > 求在 $a$ 中恰好选择 $m$ 个数的情况下,选择的数的和的最大值。 ~~现在看到了这个题目
阅读全文
摘要:前言 本博客包括较多网络流算法,但其中可能有些错误,可以在评论区指正。 还有些未完善,因为我没太多时间写。 我们在此使用 \(E\) 来表示一个图的边集,\(V\) 来表示一个图的点集,\(F\) 来表示一个图的最大流流量,定义符号 \(|S|\) 表示集合 \(S\) 的大小,\((u,v)\)
阅读全文
摘要:前言 后缀数组 $SA$ 可以用于各方面字符串问题(最长公共子串等),其目的是求出这个字符串的所有后缀按照字典序的排名。 本篇博客使用 $s_{l,r}$ 表示字符串 $s$ 在下标 $l$ 到 $r$ 内的所有字符组成的子串,用 $|s|$ 表示字符串 $s$ 的大小。 例如 $s=^"abc^"
阅读全文
摘要:前言 接下来,我们用 \(a_{l,r}\) 表示字符串 \(a\) 在下标 \(l\) 到 \(r\) 内的所有字符组成的字串,用 \(|a|\) 表示字符串 \(a\) 的大小。 例如 \(a=^"abc^"\) 则 \(a_{1,2}=^"bc^", |a|=3\) 概念 回文串 若字符串 \
阅读全文
摘要:前言。 接下来我们使用 \(s\) 表示目标串,\(T\) 来表示模式串集合,\(T_i\) 代表 \(T\) 中第 i 个字符串。\(t_{i,j}\) 代表 \(t\) 的第 \(i\) 到第 \(j\) 个字符形成的字符串,用 \(|s|\) 来表示字符串 \(s\) 的大小,\(\Sigma
阅读全文
摘要:以矩阵方式加速递推。 矩阵乘法 假设 $$ A=\begin{bmatrix} A_{1,1}&A_{1,2}&\ldots&A_{1,k}\ A_{2,1}&A_{2,2}&\ldots&A_{2,k}\ \vdots&\vdots&\ddots&\vdots\ A_{n,1}&A_{n,2}&\
阅读全文
摘要:若对于 $i\leq i'\leq j \leq j'$,二维数组 $a$ 满足如下性质: $$a_{i,j} + a_{i',j'} \leq a_{i,j'} + a_{i', j}$$ 则称数组 $a$ 满足四边形不等式。 若对于 $i\leq i'\leq j \leq j'$,二维数组 $
阅读全文