文章分类 - 笔记
摘要:引入 用途 用于快速的判断一个数是否为质数。 费马素性测试 费马小定理:若 \(p\) 为质数,那么 \(a^{p-1}=1\pmod p\), 我们只需枚举 \(a=2\sim p-1\) ,检验 \(a^{p-1}=1\pmod p\) 是否满足即可。 然而一些合数也可以通过这个测试,比如 \(
阅读全文
摘要:#### 有向图游戏 有一个有向图,图上有一个棋子,Alice 和 Bob 轮流移动棋子,不能移动的人算负。 #### SG 函数 首先,对于有向图上没有后继的点 $x$,$\text{SG}(x)=0$. 对于任意一个点 $x$,设其后继状态为 $y_1,y_2...y_m$,$\text{SG}
阅读全文
摘要:1.FFT 复数 复数乘法的运算法则是模长相乘,幅角相加。 在单位圆中(模长为1),复数相乘只会幅角转动。 定义单位根 \(w_n\),表示转 \(\frac{1}{n}\) 圆的角。 满足 \((w_n)^n=1\)。 单位根的 \(0\sim n-1\) 次幂均分整个圆,即满足 \((w_n^i
阅读全文
摘要:### 1.上下界网络流 #### 无源汇上下界可行流 每条边不仅有容量上界,还有容量下界,必须至少有若干流量流过。 且原图没有源点和汇点。 记 $f_0$ 为“每条边都恰好流了下界”的方案。 $f_0$ 可能不满足流量守恒。 我们记 $p_u=\sum_v f_0(u\rightarrow v)$
阅读全文
摘要:### 1.生成函数 #### 1.1 定义 如果存在一个数列 $a_0,a_1,...,a_n$, 定义其普通生成函数为 $f(x)=a_0+a_1 x+a_2x^2+...=\sum_{i=0}^{\infty}a_i x^i$. 指数生成函数为 $g(x)=a_0+a_1\dfrac{x}{1
阅读全文
摘要:### 1.后缀数组 #### 引入 ##### 结构 后缀数组一般由两个数组组成: $sa_i$,表示按照字典序排序第 $i$ 小的是哪个后缀。 $rk_i$,表示第 $i$ 个后缀排名第几。 有 $sa_{rk_i}=rk_{sa_i}=i$ ##### 计数排序 是一种支持排序算法,时间 $O
阅读全文
摘要:1.KMP 算法 引入 border 下文默认字符串从 1 开始。 \(border\) 的定义,若对于字符串 \(s\),长为 \(n\), 若存在 \(s[1,r]=s[n-r+1,n](r\not=n)\),那么称 \(r\) 为 \(s\) 的 \(border\). \(fail\) 数组
阅读全文
摘要:1.状态设计优化 给个例题:求最长公共子序列, 但是 \(A\) 长度为 \(n=10^6\),\(B\) 长度为 \(m=10^3\)。 \(O(nm)\) 会超时。 不妨设 \(f(i,j)\) 表示取了 \(i\) 个 B,答案是 \(j\),\(A\) 的最小长度。 这样复杂度是 \(O(m
阅读全文
摘要:### 1.线性 dp #### 1.1 P1412 经营与开发 由于前面的操作只会对后面乘一个系数。 所以这题需要倒着 dp。 $f(i) = \max (f(i+1)\cdot k+v,f(i+1))$ $k,v$ 分别为损耗,利益。 ### 2.区间 dp 状态通常为一个区间。 #### 2.
阅读全文
摘要:以 P4719【模板】动态 DP 一题为例。 我们显然可以写出朴素的方程。 考虑有 $v$ 为 $u$ 儿子。 $f_{u,0}=\sum \max(f_{v,0},f_{v,1})$ $f_{u,1}=\sum f_{v,0}$. 答案是 $\max (f_{root,0},f_{root,1})
阅读全文
摘要:引入 节点由两个集合组成,且两个集合内部没有边的图。 二分图不存在长度为奇数的环。 模型 二分图最大匹配 用匈牙利算法或网络流。 换算成网络流, 二分图最大匹配 = 最大流。 二分图最小点覆盖 König 定理: 最小点覆盖:选最少的点,满足每条边至少有一个端点被选。 最小点覆盖 = 最大匹配。 换
阅读全文
摘要:引入 P2495 [SDOI2011] 消耗战 我们容易发现我们可以有一个 $O(nq)$ 的树形 Dp. 我们称有资源的点为关键点。有 $k$ 个。 设 $dp_u$ 表示 $u$ 子树内不连接任何关键点的最小费用。 $dp_u=dp_u+\min(dp_v,w)$,当 $v$ 非关键点。 $dp
阅读全文
摘要:引入 网络 是有向图。 每条边有权值 \(c(u,v)\),称为容量(Capacity)。 有两个重要的点,源点 \(s\),汇点 \(t\) 。 流 流函数 \(f\) 满足: 容量限制: \(f(u,v)\le c(u,v)\) 斜对称 : \(f(u,v)=-f(u,v)\) 流量守恒 :\(
阅读全文
摘要:1.最短路 引入 Dijkstra Dijkstra 是基于贪心的一种算法,适用于非负权的图,求解单源最短路。 算法是这样的: 找出全局距离最小的点 $u$,并用这个点去更新连接它的 $v$ 点的距离。 时间复杂度 $O(n^2)$,使用堆优化可以优化到 $O(m \log m)$ code pri
阅读全文
摘要:### 1.逆元 #### 引入 我们知道在同余系里面加,减,乘都是可以直接完成。 但是不能除。 我们要想在模 $p$ 意义下除以一个数,就可以乘这个数的逆元。 这个数记作 $x^{-1}$. 满足 $x \cdot x^{-1} \equiv 1 \pmod p$ 线性求 $1\sim n$ 逆元
阅读全文
摘要:1.普通莫队 引入 先介绍莫队。 莫队是一种离线的算法。 莫队基于以下流程。 现在已知区间 \([l,r]\) 的贡献。 我们也可以推出 \([l,r-1]\),\([l-1,r]\),\([l+1,r]\),\([l,r+1]\) 区间的贡献。 诸如这样,我们挪动区间,顺便更新答案,就可以从上一次
阅读全文
摘要:1.李超树 引入 李超线段树是一种维护直线、线段的数据结构。 可插入一条线段或直线,并查询 \(x=p\) 的点上最值的 \(y\) . 构建 李超线段树用了标记永久化的思想。 李超树的每一个节点,设区间为 \([L,R]\) 保存最优直线的编号,这个编号是指 \([L,R]\) 之间 \(mid=
阅读全文
摘要:引入 数据分块(整除分块) 对于 \(\left \lfloor \dfrac{n}{i} \right \rfloor (1\le i\le n)\),最多只有 \(2\sqrt{n}\) 种取值。 所以就可以打包计算。 以求 \(\sum n\mod i\) 为例: 由于 \(n=i\cdot
阅读全文
摘要:前置知识 时间戳(dfn):图的深度优先遍历中,节点第一次被访问的次序。 搜索树:由所有发生递归的边构成。 无向图的割点与桥 割点:若 $u$ 是割点,那么删去 $u$ 点及其相连的边,原图分成二或以上个连通块。 桥(割边):若 $e$ 是桥,那么删去 $e$ 边,原图分成二个连通块。 让我们引入一
阅读全文
摘要:引入 笛卡尔树是一种与堆和平衡树密切相关的数据结构。 笛卡尔树是一种二叉树,每个节点有两个值 \((k,w)\), 其中 \(k\) 满足二叉搜索树的性质, \(w\) 满足堆的性质。 期望的深度是 \(\log n\) 的。 三个性质: 任何子节点 \(w\) 满足小于(或大于)父节点的 \(w\
阅读全文

浙公网安备 33010602011771号