Processing math: 0%

随笔分类 -  学习笔记

摘要:Nim 游戏 定义 有 n 堆石子, 每堆有 a_i 个石子, 每次从一堆中取任意个石子, 无法操作者败 结论 先手必胜的条件: \bigoplus_{i = 1}^n a_i \not = 0, SG 函数 定义 设一个局面为 A, 它的后继状态集合为 \(E_A\ 阅读全文
posted @ 2021-01-08 08:48 BruceW 阅读(356) 评论(0) 推荐(1) 编辑
摘要:前置知识 \begin{aligned} (\ln x)' &= \frac{1}{x} \\ (\exp x)' &= x \\ \end{aligned} 复合函数的求导(链式法则) (g\circ f)' (x) = g(f(x))'f'(x) 多项式求逆,分治FFT。 阅读全文
posted @ 2020-12-03 15:22 BruceW 阅读(412) 评论(0) 推荐(1) 编辑
摘要:描述 已知 g(x),求 f(x) 满足 g(f(x)) \equiv 0 \pmod{x^n}。 方法 倍增。 设 f_0(x) 满足 g(f_0(x)) \equiv 0 \pmod{x^{\lceil \frac{n}{2} \rceil}}。 将 \( 阅读全文
posted @ 2020-12-03 15:17 BruceW 阅读(136) 评论(1) 推荐(0) 编辑
摘要:目的 用幂级数 (也就是 OI 中的 "多项式") 来近似地表示一个函数. 大致思路 假设我们需要表示出的函数为 g(x), 最后得到的多项式为 f(x). 容易得到, 若 f(x) 的任意阶导数都与 g(x) 的对应阶导数相等, 那么 \(f(x) \Leftrig 阅读全文
posted @ 2020-12-03 15:16 BruceW 阅读(348) 评论(0) 推荐(1) 编辑
摘要:算法用途 对 n-1 次多项式 g(x), 求 f(x), 满足 [x^i]f(x) \equiv \sum_{j = 0}^{i - 1} ([x^j]f(x)) \times ([x^{i-j}]g(x)) 算法过程 总思路: 分治. 对于 \([x^{l \ 阅读全文
posted @ 2020-10-27 19:37 BruceW 阅读(101) 评论(0) 推荐(0) 编辑
摘要:板子传送门:door: 常见转化 动态二维数点 (即带修改的二维数点) 实现方法 离线做法 CDQ 分治 先按第一维排序,然后在分治过程中,就能保证左儿子的第一维严格小于右儿子的第一维(若有第一维相等的情况,则需在排序时按照第二维排序,以此类推),那么左儿子对右儿子的贡献就是一个二维偏序问题,维护两 阅读全文
posted @ 2020-10-17 15:25 BruceW 阅读(356) 评论(0) 推荐(0) 编辑
摘要:算法用途 求 \sum_{i = 0}^{n} [i\ \&\ n = i] a_i (实际上, 这只是高维前缀和的一种特殊形式, 即每一维的大小都为 2.) 算法过程 我们计算矩阵前缀和时, 通常用的是容斥的方法. 设当前要计算 D 维前缀和, 容斥的复杂度为 \[ \sum_ 阅读全文
posted @ 2020-07-27 22:26 BruceW 阅读(421) 评论(0) 推荐(0) 编辑
摘要:用途 解关于 x 的线性同余方程组. 形如 \[ \left\{ \begin{aligned} x &\equiv c_1 \pmod{p_1} \\ x &\equiv c_2 \pmod{p_2} \\ x &\equiv c_3 \pmod{p_3} \\ &\ \ \vdots \ 阅读全文
posted @ 2020-07-11 21:54 BruceW 阅读(148) 评论(0) 推荐(0) 编辑
摘要:欧拉函数 定义 ​ 1 \sim N 中与 N 互质的数的个数被成为欧拉函数, 记为 \varphi(N). ​ 若在算数基本定理中 N=p_1^{c_1}p_2^{c_2} \cdots p_k^{c_k}, 则 \[ \varphi(N)= N * \Pi_{i=1} 阅读全文
posted @ 2020-06-18 19:14 BruceW 阅读(825) 评论(0) 推荐(2) 编辑
摘要:「学习笔记」扩展KMP (简) 【模板】扩展 KMP(Z 函数) 用途 求文本串 s 的每一个后缀与模式串 tLCP (最长公共前缀). 过程 思路 : 对新的位置匹配时利用前面已匹配的信息. 维护一个一匹配的右边界, 每次根据前面的信息取得一个初始匹配值, 然后再对右 阅读全文
posted @ 2020-06-17 12:19 BruceW 阅读(128) 评论(0) 推荐(0) 编辑
摘要:「学习笔记」字符串最小表示法 (简) 【模板】最小表示法 过程 维护三个指针 i,j,k. i,j 表示目前正在进行比较的两个起始位置, 保证 i<j, k 表示这两个起始位置对应的串的 LCP 长度. 每次对 k++ , 然后根据 \(s[i+k]\ 阅读全文
posted @ 2020-06-17 11:58 BruceW 阅读(158) 评论(0) 推荐(0) 编辑
摘要:拆点 : 将每个 bool 变量拆成 0, 1 两个点. 连边 : 将限制条件转化为连边. 图是 DAG 时, 对于每个 bool 变量, 合法点的拓扑序大于非法点. 证明 : 若某个 bool 变量拆分成的两个点为 u,v , 若 u 为非法点, 则存在一条从 u 到 v 的路径, 所以 v 的拓 阅读全文
posted @ 2020-06-10 11:58 BruceW 阅读(174) 评论(0) 推荐(0) 编辑
摘要:前置知识 Dirichlet 卷积, 数论分块 杜教筛 概念 ​ 杜教筛用于解决数论函数 f(n) 的前缀和问题, 即求 : S(n)=\sum_{i=1}^{n}f(i) 结论 ​ 对于任意数论函数 g(n) , 都有 \[ \sum_{i=1}^{n}\sum_{d| 阅读全文
posted @ 2020-05-25 11:43 BruceW 阅读(106) 评论(0) 推荐(0) 编辑
摘要:前置知识 引理一 \forall a,b,c \in \mathbb{Z}, \lfloor\frac{a}{bc}\rfloor = \lfloor\frac{\lfloor{\frac{a}{b}}\rfloor}{c}\rfloor 证明 : 设 \[ \frac{a}{b}=\l 阅读全文
posted @ 2020-05-24 20:08 BruceW 阅读(232) 评论(0) 推荐(0) 编辑
摘要:「学习笔记」向量外积(叉乘) 一 基本概念 一) 定义 向量 \vec a, \vec b 的向量积为一个向量, 记为 \vec a \times \vec b, 满足 | \vec a \times \vec b| =|\vec a||\vec b|\sin \theta, 阅读全文
posted @ 2020-05-20 15:29 BruceW 阅读(2538) 评论(0) 推荐(0) 编辑
摘要:引子 LCP...只能二分加 HASH 吗...? 算法 ​ 为了描述方便, 我们把 "后缀 i " 定义为 : 以下标 i 为起点的后缀. 初始目的 后缀数组的主要过程, 实际上就是为了求两个数组. rank[i] : 后缀 i 的排名. \(sa[ 阅读全文
posted @ 2020-01-16 19:43 BruceW 阅读(126) 评论(0) 推荐(0) 编辑
摘要:「学习笔记」带花树 引子 最大匹配问题, 二分图可以用匈牙利算法, 那一般图呢......? 算法 一 思路 二分图中的匈牙利算法, 是一个 O(nm) 的算法, 每次寻找增广路的复杂度为 O(m). 之所以能达到这个复杂度, 是因为在二分图上有一个结论 : ​ 若在寻找以 \(u\ 阅读全文
posted @ 2020-01-03 21:56 BruceW 阅读(121) 评论(0) 推荐(0) 编辑
摘要:「学习笔记」动态点分治 引子 点分治是个好东西, 可万一树上的权值需要修改呢...... 算法过程 点分治, 计算出初始数据. 构建点分树. 在点分树上进行数据维护. 点分树 : 把原树在点分治时的各级重心连接起来的数据结构, 称为点分树. 它有一个非常优美的性质 : 树高 规模为 \(\log n 阅读全文
posted @ 2019-12-30 22:33 BruceW 阅读(112) 评论(0) 推荐(0) 编辑
摘要:「学习笔记」点分治 引子 点分治, 其实应该叫 "树上点分治". 主要用于解决 "树上路径问题" (我乱起的名字). 比如, 树上是否存在长为 k 的路径, 树上长小于 k 的路径有多少条等等. 点分治可以概括为 : 分治 + 重心 + 桶 (就目前我做过的几道题来说都是这个套路) 阅读全文
posted @ 2019-12-30 11:44 BruceW 阅读(117) 评论(0) 推荐(0) 编辑
摘要:基本信息 用途 : 多项式乘法 时间复杂度 : O(nlogn) (常数略大) 算法过程 基本思路 求 H(x) = G(x) \times F(x) 直接从系数表达式转化为系数表达式比较难搞, 所以考虑先把 F(x),\ G(x) 转化为点值表达式, 再 O(n) 阅读全文
posted @ 2019-12-29 20:44 BruceW 阅读(382) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示