佛脚公式

组合恒等式

吸收恒等式: \(\binom mi i = m\binom{m-1}{i-1}\)

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

单位根反演

\[\sum_{i = 0} ^ {n - 1} w_n^{ki} = \begin{cases} n &,w_n^k = 1\\ 0 &,w_n^k \neq 1 \end{cases} = n[n | k] \]

斯特林

\(n\brack m\) \(=\) \({n - 1}\brack {m - 1}\) \(+(n - 1) \times\) \({n - 1}\brack{m}\)

\(x^{\underline n} = \sum_{i = 0}^n s_s(n, i) x^i\)

\(x^{\overline n} = \sum_{i = 0}^n s_u(n, i) x^i\)

\(n\brace m\) \(=\) \({n - 1}\brace {m - 1}\) \(+m\times\) \({n - 1}\brace m\)

\(n\brace m\) \(=\) \(\frac 1{m!}\sum_{i = 0}^m (-1)^{m - i}\binom mi i^n\)

\(x^n = \sum_{i = 0}^n S(n, i)x^{\underline i}\)

第一类斯特林数行:对于第 \(n\) 行其生成函数就是 \(x\)\(n\) 次上升幂,可以暴力分治 \(nlog^2n\) 求。

第一类斯特林数列:单个轮换的生成函数是 \(F(x) = \sum_{i = 1}^n (i-1)! \dfrac{x^i}{i!}\),做多项式 \(n\) 次幂,就是 \(i\brack n\) 的 EGF

第二类斯特林数行:通项公式是卷积的形式,\({n\brace m} = \frac{1}{m!}\sum_i (-1)^{m-i}\binom mi i^n\)

第二类斯特林数列:单个的生成函数是 \(F(x) = \sum_{i = 1}^{\infin} \dfrac{x^i}{i!}=e^x-1\),仍然做 \(n\) 次幂,就是 \(i\brace n\) 的 EGF。

斯特林数反演:\(f(n) = \sum_{k} {n\brace k}g(k) \Leftrightarrow g(n) = \sum_{k} (-1)^{n-k} {n\brack k}f(k)\)

点值表达式和下降幂

点值的 EGF = 下降幂多项式系数的 OGF × e^x

牛顿级数

可以方便地推一些柿子

\(f(x)=\sum c_i\binom xi\)

数论

CRT:自己推。

Wilson定理:\((p-1)!\equiv-1 \pmod p\)

Lucas:\(\binom nm=\binom{n/prime}{m/prime}\binom{n\bmod prime}{m\bmod prime}\) 。对于 \(p=2\) 的情况,有 \(\binom nm=[m\in n]\)。扩展 lucas 的思想是拆成每一个质因子求答案然后 CRT 合并,对于每一个质因子,把数字 p 的幂次拆掉然后递归做之类。

积性函数

注意,当 \(C\) 是完全积性函数的时候,\((A\cdot C)*(B\cdot C)=(A*B)\cdot C\)

  • \(\mu * I=\epsilon\)
  • \(\phi * I=id\)
  • \(\frac {\phi(n)}n= \sum_{d|n}\frac{\mu (d)}d\)
  • \(\sum_i\sum_j [(i,j)=1]=\sum_i 2\phi(i)-1\)
  • \(d=I*I=\sum_{d|n}1\)
  • \(\sigma=id*I\), \(\sigma_k=id*I_k\)
  • \(\mu(ij)=\mu(i)\mu(j)[i\perp j]\)
  • \(d(ij)=\sum_{x|i}\sum_{y|j}[x\perp y]\)
  • \(\phi(ij)=\dfrac{\phi(i)\phi(j)(i,j)}{\phi((i,j))}\)
  • \((\mu\cdot id_k)*id_k=\epsilon\)
  • \((\phi\cdot id_k)*id_k=id_{k+1}\)

杜教筛:欲求 \(sf\),构造 \(g\),使得 \(h=f*g\) 比较优雅(注意都得是积性函数,不然线筛不了)。有 \(\sum_i h(i)=\sum_{d}g_dsf(\lfloor \frac{n}d \rfloor)\),然后再移项就可以,注意预处理 \(\sqrt(n)\) 的答案以保证复杂度。

PN 筛:杜教筛的扩展,进行素数拟合使得 \(g(p)=f(p)\),然后令 \(h=f/g\)。可以知道 \(h(1)=1,h(p)=0\),那么 \(h\) 有值的位置都是 PN。所以 \(\sum f(i)=\sum_{d \in PN} h(d)sg(n/d)\)\(sg\) 可以筛出来,然后 PN 可以 \(\sqrt n\) 暴力搜索,问题在于 h。由于 \(h\) 是积性函数,所以问题在于求所有 \(h(p^c)\),这个也可以暴力枚举。

min25 筛:不会。

LGV

\(\omega(P)\) 表示 \(P\) 这条路径上所有边的边权之积。(路径计数时,可以将边权都设为 \(1\))(事实上,边权可以为生成函数)

\(e(u, v)\) 表示 u 到 v 的 每一条 路径 \(P\)\(\omega(P)\) 之和,即
\(e(u, v)=\sum\limits_{P:u\rightarrow v}\omega(P)\)

起点集合 A,是有向无环图点集的一个子集,大小为 n。

终点集合 B,也是有向无环图点集的一个子集,大小也为 n。

一组 \(A\rightarrow B\) 的不相交路径 S:S_i 是一条从 A_i 到 B_{\sigma(S)_i} 的路径(\sigma(S) 是一个排列),对于任何 i\ne j,S_i 和 S_j 没有公共顶点。

t(\sigma) 表示排列 \sigma 的逆序对个数。

LGV 引理:

矩阵树定理:

计算的是 \(\sum_T\prod_{e\in T} w_e\)

无向图:度数矩阵-邻接矩阵 去掉第 n 行列的行列式

有向图:入度矩阵-邻接矩阵 -> 外向树;出度 -> 内向树;根在 x,去掉 x 行列

可以处理重边。

求边权和: 省选联考 2020 A 作业题 经典技巧,令 \(w_e = w_ex + 1\),边权和是一次项系数,重定义 pair 加减乘除即可。

波斯坦-茉莉

这能用上我直接吃 https://codeforces.com/blog/entry/111862

posted @ 2024-03-01 20:17  _Famiglistimo  阅读(35)  评论(0编辑  收藏  举报