随笔分类 - 学习笔记
摘要:Bluestein's Algorithm 用于当不是 \(2\) 的整数次幂时对多项式的 (I)DFT。 考虑现在要求: \[f_m = \sum\limits_{k = 0}^{n - 1} a_k w^{mk} \]Bluestein 的核心思想在于拆 \(mk\)。不难证明 \(mk = \
阅读全文
摘要:考虑分拆数的生成函数 \(\prod\limits_{i = 1}^n \frac{1}{1 - x^i}\)。 研究分母,相当于是互异分拆数,奇数个数被统计 \(-1\) 次,偶数个数被统计 \(1\) 次。 考虑 Ferrers 图,发现在大部分情况下互异奇数分拆数和互异偶数分拆数可以互相转换。
阅读全文
摘要:求逆 考虑倍增。 若已经求出 \(A \times B' \equiv 1 \pmod {x^n}\),我们希望求出 \(B\) 使得 \(A \times B \equiv 1 \pmod {x^{2n}}\)。 有: \[B - B' \equiv 0 \pmod {x^n} \]\[(B -
阅读全文
摘要:考虑这样一个问题:\(n\) 个一次函数 \(k_i x_i + b_i\),每个一次函数初始有 \(x_i = 0\);区间对 \(x_i\) 加正数 \(x\),区间查询 \(\max\limits_{i = l}^r k_i x_i + b_i\)。 考虑每个点维护当 \(x_i = 0\)
阅读全文
摘要:好高妙! 大致思想是给每个局面构造一个势能函数 \(F(a_1, a_2, \ldots, a_n)\),使得 \(\sum E(F(a'_1, a'_2, \ldots, a'_n)) - E(F(a_1, a_2, \ldots, n)) = -1\),其中 \(a'\) 取遍 \(a\) 的后
阅读全文
摘要:考虑如下卷积: \[f_i = \sum\limits_{j = 1}^{i - 1} f_j f_{i - j} \]仍然可以 cdq 分治计算。 考虑当前在 \([l, r]\),希望计算 \([l, mid]\) 贡献到 \([mid + 1, r]\)。若 \(r - l < l\) 那么
阅读全文
摘要:边分治就是,每次选择一条边作为分治中心。然后把这条边断掉,在两个连通块内继续递归。 考虑将原树三度化,就是对于 \(u\) 的每条出边,新建一个点 \(w\),连边 \((u, w, 0), (w, v, d)\),然后令 \(u = w\)。三度化后边分治的复杂度就是对的,为 \(O(n \log
阅读全文
摘要:考虑若有非 \(0\) 解,那么两个解在模意义下互为相反数。 判定 \(n\) 在模 \(p\) 意义下是否有二次剩余,只要看 \(n^{\frac{p - 1}{2}}\) 为 \(1\) 还是 \(-1\) 即可。 Cipolla 算法流程是,任意随一个 \(a\) 使得 \(a^2 - n\)
阅读全文
摘要:Powerful Number 筛(PN 筛)可以解决一些求积性函数前缀和的问题。要求能构造出一个积性函数 \(g\),满足: \(g\) 容易求前缀和; 对于质数 \(p\),\(f(p) = g(p)\)。 称一个数 \(x\) 是 Powerful Number(PN)当且仅当 \(x\) 的
阅读全文
摘要:Boruvka 算法的思想基于每个点的最短邻边一定在最小生成树上。算法流程是每轮对每个连通块找到一条连向另一连通块的最短边,然后合并两端点。因为每轮连通块数量至少减半,所以一共会进行 \(O(\log n)\) 轮。 相比 Kruskal 和 Prim,Boruvka 在求稠密图的最小生成树上具有优
阅读全文
摘要:式子: \[[n \mid d] = \frac{1}{n} \sum\limits_{i = 0}^{n - 1} \omega_n^{id} \]最常见的应用是 \([x \equiv y \pmod n] = [n \mid (x - y)] = \sum\limits_{i = 0}^{n
阅读全文
摘要:## 1. 多项式乘法(卷积) [FFT](https://www.luogu.com.cn/blog/flashblog/solution-p3803 "FFT") 简单来说,选取 $\omega_n^k$ 代入,DFT 转化成点值表达式后相乘后再 IDFT。 [NTT](http://https
阅读全文
摘要:问题 有 \(n\) 个整数变量 \(x_i\)。\(x_i\) 可以取 \([1,m]\),取 \(j\) 需要 \(a_{i,j}\) 的代价。有若干个约束,形如 \(x_{u_i} \le x_{v_i} + w_i\)。给变量赋值,最小化总代价。 建模 考虑求最小割。对每个整数变量拆 \(m
阅读全文
摘要:### 公式 普通 min-max 容斥: $$\max\limits_{i \in S} a_i = \sum\limits_{T \subseteq S \and T \ne \varnothing} (-1)^{|T|-1} \min\limits_{j \in T} a_j$$ $$\min
阅读全文
摘要:显然两个区间的哈希值是可以合并的,所以线段树可以维护区间的哈希值。 设左儿子的长度和哈希值分别为 $sz_a,h_a$,右儿子的长度和哈希值分别为 $sz_b,h_b$,合并后的长度为 $sz_a + sz_b$,哈希值为 $h_a \times base^{sz_b} + h_b$。 1. CF2
阅读全文
摘要:摩尔投票法 绝对众数 :数列内出现次数超过数列长度一半的数。 摩尔投票法是一个求绝对众数的利器。 例题 1. 洛谷 P2397 yyy loves Maths VI (mode) 摩尔投票法板子题。 假设现在有一个小房子,有一个新的数 $x$ 需要进来。 如果房子是空的,那么 $x$ 就直接进去;
阅读全文
摘要:Kruskal 重构树 回忆 $\mathrm{Kruskal}$ 算法求最小生成树的过程,将所有边按边权排序,然后从小到大合并。若两个点不直接合并,而是新建一个虚点 $z$,连 $z \to x$ 和 $z \to y$,就形成了一棵 $\mathrm{Kruskal}$ 重构树 。 $\math
阅读全文
摘要:点分治是一种处理树上路径相关问题的好方法。 先来一道题:洛谷 P3806 【模板】点分治1 暴力枚举显然是是 $O(n^2)$,考虑使用点分治。 对于任意两点的路径,显然只有两种: 经过根结点 $root$ 不经过根结点 $root$ 对于情况 $1$ 的路径长度是很好算的,$\mathrm{dis
阅读全文

浙公网安备 33010602011771号