省选 2026 知识点梳理

知识点梳理简要版。

数据结构

离线时 \(O(q\log n)\) 空间的 2D BIT:这里 \(q\) 是修改次数,我们把修改离线下来,把第一维上每个位置在第二维上的修改点存到 vector 里,然后离散化。后续修改和查询时在 vector 上二分找到最后一个 \(\le pos\) 的位置。

BIT 区间加、区间和:考虑差分数组,修改就是两个单点加,查询就是求区间每个位置前缀和的和,由此需要 BIT 维护差分 \(d_i\) 的前缀和,和 \(d_i\times i\) 的前缀和。

区间历史和、历史最值,使用矩阵乘法的思路,然后转化为标记。

Segment Tree Beats:也就是区间最值操作,需要支持区间 chkmin,区间求最大值,区间加,区间和。我们维护区间最大值、严格次大值、最大值个数,最大值个数是用来更新区间和信息的,我们有如下策略:

  • \(mx\le v\),直接退出。
  • \(ms<v<mx\) 时,更新,打上标记并返回。
  • \(v\le ms\) 时,继续递归。

可以证明复杂度是没有区间加操作时复杂度 \(O(m\log n)\),有区间加则是 \(O(m\log ^2n)\)。套上历史最值时需要对最大值和非最大值分别维护信息。有时会套上求区间最值的历史和。

楼房重建的单次递归线段树:我们想要查询区间内前缀最大值的个数(或和),我们先对于每个节点处理只考虑它所在区间的答案,每次向上合并时用左区间的信息递归进右区间算答案,复杂度 \(O(n\log ^2n)\)

DP

四边形不等式

四边形不等式:交叉小于等于包含。我们可以验证 \(w(a,b)+w(a+1,b+1)\le w(a,b+1)+w(a+1,b)\)

满足四边形不等式的价值函数存在决策单调性。

分治法:求解 \(f(i)=\min _{0\le j<i}w(j+1,i)\)。或者在拆分区间问题中限制区间个数时,分层用分治法解决。

二分队列法:我们用一个队列记录决策点和决策点能转移到的区间 \((p,l,r)\),表示的是 \([l,r]\) 内的点的最优决策点为 \(p\)。每次算完一个 \(f(i)\) 时,我们把队列中末尾若干个决策点删掉替换为 \(i\),或者在把一个决策点的区间二分砍一刀。

knuth 解决区间合并问题:此时还要求价值函数满足区间包含单调性,即对于 \(a\le b\le c\le d\)\(w(b,c)\le w(a,d)\)。我们记录 \(opt(i,j)\)\(f(i,j)\) 的决策点,那么有 \(opt(i,j-1) \le opt(i,j) \le opt(i+1,j)\),在范围内枚举即可做到 \(O(n^2)\)

wqs 二分

答案关于选择数量为凸函数时(假设是上凸),我们二分斜率 \(k\) 用这条直线切凸包,得到当前选择的数量后调整斜率。

被切点就是 \(f(x)-kx\) 最大的点,于是相当于每个物品减掉 \(k\) 的价值,然后算一遍没有数量限制时的最优化解法。

Slope Trick

我们记录凸函数的断点,每插入一个数 \(x\) 就表示 \(x\) 处斜率增加了 \(1\)。再另外记录最左端的函数值和斜率即可。

用可并堆维护这些端点即可方便维护:求最值、全局加、全局加直线、全局加绝对值函数、两个函数对位相加。

闵可夫斯基和

两个凸包的卷积就是它们的闵可夫斯基和。

树上背包

树上背包限定背包大小为 \(m\) 时复杂度是 \(O(nm)\)

DP of DP

把 DP1 状态的值压成 DP2 的下标,做 DP2。

或者说建出 DP1 的自动机,然后在自动机上 DP 计算方案数。

DFA 最小化

定义两个串 \(x,y\) 等价当且仅当对于任意串 \(z\),使得 \(xz,yz\) 得到的状态等价。

我们通过设立合适的阈值 \(U\),规定检查两个串是否等价时只选用长度 \(\le U\) 的所有 \(z\)

要找到所有本质不同的串,可以从空串开始 BFS,每次添加一个字符。

数学相关

数论

线性不定方程的通解:\(x=x_0+k\times \frac b{\gcd(a,b)},y=y_0-k\times \frac a{\gcd (a,b)}\).

欧拉定理:\(a^b\equiv a^{b\bmod \varphi(p)+\varphi(p)}\pmod {p}\).

欧拉函数的性质:\(\sum _{i|n} \varphi(i)=n\).

莫比乌斯函数的性质:\(\sum _{i\mid n}\mu(i)=[n=1]\).

莫比乌斯反演\(f(x)=\sum_{d|x} g(d)\) 等价于 \(g(x)=\sum _{d|x} \mu(d)f(\frac xd)\),如果是倍数也是一样的。

莫比乌斯反演的应用:由 \(n=\sum _{d\mid n} \varphi(d)\) 可以得到 \(\varphi(d)=\sum _{d|n} d\times\mu(\frac n d)\)

筛约数个数我们拆成 \(\prod(c_i+1)\),其中 \(c_i\) 是唯一分解的次数。筛因数和我们拆成 \(\prod (1+p+p^2+\cdots + p^c)\)

狄利克雷前缀和:我们枚举每个质数 \(x\),和 \(x\) 的倍数 \(y\),执行 \(a_y\gets a_y+a_{y/x}\)。原理类似高维前缀和的思想。复杂度是埃氏筛法的复杂度 \(O(n\log \log n)\)

原根判定:\(\gcd(g,m)=1\) 且对于 \(\varphi(m)\) 的每个质因子 \(p\)\(g^{\varphi(m)/p}\ne 1\pmod{m}\)

组合数学

上指标求和:\(\sum _{i=m}^n\binom {n+1}{m+1}\),放到杨辉三角上即可证明。

吸收:\(k\binom nk=n\binom {n-1}{k-1}\)

二项式定理推论:$\sum _{i=0}^n a^i\binom ni =(1+a)^n $。

二项式反演\(f(n)=\sum _{i=0}^n \binom ni g(i)\) 等价于 \(g(n) = \sum _{i=0}^n \binom ni(-1)^{n-i}f(i)\)

子集反演:\(f(S)=\sum _{T\subseteq S} g(T)\) 等价于 $g(S)\sum _{T\subseteq S} (-1)^{|S|-|T|} f(T) $

范德蒙德卷积:\(\sum _{i=0}^k \binom ni\binom m{k-i}=\binom {n+m}k\)

第二类斯特林数:把 \(n\) 个无标号数,划分成 \(k\) 个无标号集合的方案数。递推式为 \(S(n,k)=S(n-1,k-1)+kS(n-1,k)\)\(S(n,0)=[n=0]\)

普通幂转下降幂\(m^n=\sum _{i=0}^n S(n,i)\times m^{\underline {i}}\)

min-max 容斥:\(S\) 为集合,\(\max(S)=\sum _{T\subseteq S \land T\ne \varnothing}(-1)^{|T|-1}\min(T)\)。期望也成立。

字符串

Z 函数:维护当前 LCP 匹配到的最远 \(r\),若 \(i\le r\),则 \(z_i\gets \min(z_{i-l+1},r-i+1)\)。然后暴力拓展。

AC 自动机:失配指针表示最长后缀,计算匹配数时统计模式串节点子树内染了几个点。

回文树:一个奇根一个偶根。每条转移边表示往当前串两边加一个字符,每条 fail 边表示跳到最长回文后缀。每个 endpos 为以它结尾的最长回文子串。加点时有两次跳 fail,第一次找到第一个匹配然后检查是否有边;第二次在第一次基础上继续跳找到匹配,然后连 fail。

后缀排序:基数排序做到单 log,求 height 数组运用引理 \(hei_{rk_i}\ge hei_{rk_{i-1}}-1\)

SAM:Parent 树往下表示往串前面加一个字符分裂到不同的 Endpos 集合,\(len\) 存的是节点中最长的串。在每次插入完后的节点加一,然后统计 Parent 树的子树和,可以得到子串出现次数。

构建 SAM:

  • 新建点 \(x\)。首先从 \(lst\) 开始跳,不断连边直到找到一条边,因为一个点有连边则它的 link 也有这条边。
  • 如果跳出根就表示没有新的 Endpos 等价类,这个等价类的最短串就是这一个字符构成的串,删掉后会得到空串,于是将 link 设为根。
  • 否则找到连出去的点 \(v\)。若 \(len_v=len_x\) 那么令 link 为 \(v\),这符合 link 的定义。
  • 否则 \(x\) 的 link 应当与 \(v\) 属于不同等价类,让我们分裂 \(v\),新建一个点 \(u\),复制 \(v\) 的转移和 link\(u\),然后将 \(x\)\(v\) 的 link 设为 \(u\)。最后从刚刚跳到的有出边的点继续跳,把所有出边为 \(v\) 的出边改为 \(u\),显然出边为 \(v\) 的是连续的一段。

图论

广义串并联图:不存在 K4 的无向连通图。可以通过删一度点、缩二度点、去除重边使图变成一个点,在过程中维护信息。

霍尔定理:对于任意左部点集合 \(S\),有 \(|N(S)|\ge |S|\)

posted @ 2026-03-06 21:01  dengchengyu  阅读(5)  评论(0)    收藏  举报