摘要:
长链剖分 长链剖分在维护有关深度的信息时具有显著优势。 定义长链剖分中长儿子为子树内深度最大的儿子,不难使用类似重链剖分的方式求出长儿子: void dfs1(int u, int f) { fa[u] = f, len[u] = 1; for (int v : G.e[u]) { if (v == 阅读全文
摘要:
字符串杂记 哈希 对于字符串哈希,定义哈希函数: \[H[1, i] = H[1, i - 1] \times B + S[i] \]则: \[H[l, r] = H[1, r] - H[1, l - 1] \times B^{r - l + 1} \]若两个串的哈希值相同,基本可以认为两个串相同。 阅读全文
摘要:
众数杂记 众数:出现次数最多的数。 绝对众数:出现次数严格大于不出现次数的数。 众数并不满足区间可加性,一般来说众数相关的问题很少是 poly log 的复杂度。可以尝试往根号方面思考,如分块、莫队,或将数字的出现次数进行根号分治。 关于绝对众数的分析: 一个区间只存在一个绝对众数。 若存在绝对众数 阅读全文
摘要:
点分治 点分治适合处理大规模的树上路径信息问题。 实现 P3806 【模板】点分治1 给定一棵有 \(n\) 个点的树,询问树上距离为 \(k\) 的点对是否存在。 \(n \leq 10^4\) 考虑简单深搜,对于任意子树,把路径分为经过根节点的路径和不经过根节点的路径。 对于不经过根节点的路径, 阅读全文
摘要:
二分图 定义:可以分为两个部分的图(称为左部和右部),同一个部分内没有边。 由此得到: 二分图是可以被二染色的图。 若二分图 \(G=(V,E)\) 包含 \(C\) 个连通分量,则其二染色的方案为 \(2^C\) 。 二分图的判定 定理:一张无向图是二分图,当且仅当图中无奇环 。 推论: 二分图的 阅读全文
摘要:
数论杂记 数论函数 数论函数是指这样一类函数:其定义域是正整数,值域是一个数集。 定义两个数论函数的加法,为逐项相加,即 \((f + g)(n) = f(n) + g(n)\) 。 定义数乘这个数和每一项都相乘,即 \((xf)(n) = x \times f(n)\) 。 常见数论函数 \[1( 阅读全文
摘要:
DP套DP DP套DP,就是将内层DP的结果作为外层DP的状态进行DP。 主要思想是一位一位确定子DP的输入,不妨考虑已经枚举了前 \(i\) 位,由于我们只对DP方程的最终结果感兴趣,故并不需要记录这前 \(i\) 位都是什么,只需要记录对这前 \(i\) 位进行转移以后,DP方程关于每个状态的当 阅读全文
摘要:
欧拉相关 欧拉函数 欧拉函数 \(\varphi(n)\) 表示 \(1 \sim n\) 内与 \(n\) 互质的数的个数。 性质 欧拉函数是积性函数,特别的有 \(\varphi(2n) = \varphi(n)\) 。 \(\sum_{d | n} \varphi(d) = n\) 。 证明: 阅读全文