一些式子
\[(1+x)^\alpha=\sum_{i=0}\binom{\alpha}{i}x^i\\
\binom n k=\frac n k \binom {n-1}{k-1}\\
\binom n k=\binom n{k-1}+\binom {n-1}{k-1}\\
\binom n m =(-1)^m \binom {m-n-1} m\\
\binom n kk^{\underline m}=\binom {n-m}{k-m}n^{\underline m}\\
\sum_{i=0}^n \binom i m=\binom {n+1}{m+1}\\
\sum_{i=0}^n \binom {i+m} i=\binom {n+m+1} n\\
\sum_{i=0}^n (-1)^i\binom n i =\binom {n-m}m=(-1)^m\binom {n-1}m\\
\sum_{k}\binom r {m+k} \binom s {n-k}=\binom {r+s}{n+m}\\
\sum_{k=0}\binom {r-k} m\binom {s+k} n=\binom{r+s+1}{n+m+1}
\]
高阶差分
我们记多项式中左移操作为 \(E\),即 \(E^kf(x)=f(x+k)\),则 \(\Delta f(x)=f(x+1)-f(x)=Ef(x)-f(x),\Delta =E-1\)。
然后高阶差分即为:\((E-1)^k=\sum_{i=0}^k\binom n k(-1)^{k-i}E^i\)。
牛顿级数
一个 \(\operatorname{deg}=n\) 的多项式 \(f\) 都可以表示成下降幂的形式
\[f(x)=\sum_{i=0}^na_i'x^{\underline{i}}=\sum_{i=0}^nc_i\binom x i
\]
其中 \(c_i=a_i'\times i!\) 。
对这个东西 \(x_0=0\) 进行高阶差分,得到:
\[\sum_{k=0} \binom n k(-1)^{n-k}(\sum_{i=0}^kc_i\binom k i)=\Delta^n f(n)=c_n
\]
换成一般多项式:
\[\sum_{k=0} \binom n k(-1)^{n-k}(\sum_{i=0}^ka_i\binom k i)=\Delta^n f(n)=n!a_n
\]
还有一个长得跟泰勒展开差不多的式子:
\[f(x)=\sum_{k=0}^\infty \frac {(x-x_0)^{\underline{k}}}{k!}\Delta^kf(x_0)\\
=\sum_{k=0}^\infty \binom {x-x_0}{k}\Delta^kf(x)\\
=\sum_{k=0}^\infty \binom {x-x_0} k(\sum_{i=0}^k\binom k i(-1)^{k-i}E^i)\\
=\sum_{i=0}^n\binom{x-x_0} k\sum_{i=0}^k\binom k i(-1)^{k-i}f(i)\\
=\sum_{i=0}^nf(i)\binom x i\binom{n-x}{n-i}
\]
证明时取 \(x_0=0\),随便推几下就可以了。
ARC033D
高桥君有一个未知的 \(N\) 次多项式 \(P(x)\),只知道 \(P(x)\)在\(x=0,1,2,3\cdots N\) 时的值。高桥君希望知道当 \(x=T\) 时,多项式的值。结果对 \(10^9+7\) 取模。
\(1\le n\le 5\times 10^6,1\le T\le 10^9\)
我们用这个东西推一下:
\[f(T)=\sum_{i=0}^nf(i)\binom T i\binom {n-T}{n-i}\\
=\sum_{i=0}^nf(i)\binom T i(-1)^{n-i}\binom {T-i-1}{n-i}\\
=\sum_{i=0}^nf(i)(-1)^{n-i} \frac{T!\times (T-i-1)!}{i!\times (T-i)!\times (T-n-1)!\times (n-i)!}\\
=\sum_{i=0}^nf(i)(-1)^{n-i} \frac{T^\underline{n+1}}{i!\times (T-i)\times (n-i)!}
\]
然后 \(i!,(n-i)!\) 的逆元可以预处理,\(\frac{T^\underline{n+1}}{T-i}\) 可以预处理 \(T-n\sim T\) 的前后缀积,做到 \(O(n)\) 复杂度。
组合数
P5824 十二重计数法
有 \(n\) 个球和 \(m\) 个盒子,要全部装进盒子里。
还有一些限制条件,那么有多少种方法放球?(与放的先后顺序无关)
限制条件分别如下:
\(\text{I}\):球之间互不相同,盒子之间互不相同。
\(\text{II}\):球之间互不相同,盒子之间互不相同,每个盒子至多装一个球。
\(\text{III}\):球之间互不相同,盒子之间互不相同,每个盒子至少装一个球。
\(\text{IV}\):球之间互不相同,盒子全部相同。
\(\text{V}\):球之间互不相同,盒子全部相同,每个盒子至多装一个球。
\(\text{VI}\):球之间互不相同,盒子全部相同,每个盒子至少装一个球。
\(\text{VII}\):球全部相同,盒子之间互不相同。
\(\text{VIII}\):球全部相同,盒子之间互不相同,每个盒子至多装一个球。
\(\text{IX}\):球全部相同,盒子之间互不相同,每个盒子至少装一个球。
\(\text{X}\):球全部相同,盒子全部相同。
\(\text{XI}\):球全部相同,盒子全部相同,每个盒子至多装一个球。
\(\text{XII}\):球全部相同,盒子全部相同,每个盒子至少装一个球。
由于答案可能很大,所以要对 \(998244353\) 取模。
我们一个一个来考虑:
\(\text{I}\):球之间互不相同,盒子之间互不相同。
每个球有 \(m\) 种选择,答案为 \(m^n\)
\(\text{II}\):球之间互不相同,盒子之间互不相同,每个盒子至多装一个球。
答案为 \(m^\underline n\)
\(\text{III}\):球之间互不相同,盒子之间互不相同,每个盒子至少装一个球。
枚举有至少多少盒子是空的,答案为
\(\sum_{i=0}^m\binom m i(-1)^i(m-i)^n\)
\(\text{IV}\):球之间互不相同,盒子全部相同。
枚举空盒子,答案为 \(\sum_{i=0}^m {n\brace i}\)
\(\text{V}\):球之间互不相同,盒子全部相同,每个盒子至多装一个球。
就是 \([n\le m]\)
\(\text{VI}\):球之间互不相同,盒子全部相同,每个盒子至少装一个球。
就是 \(n\brace m\)
\(\text{VII}\):球全部相同,盒子之间互不相同。
先增加 \(m\) 个球,插版法,答案为 \(\binom {n+m-1}{m-1}\)。
\(\text{VIII}\):球全部相同,盒子之间互不相同,每个盒子至多装一个球。
就是选择 \(n\) 个盒子,答案为 \(\binom m n\)
\(\text{IX}\):球全部相同,盒子之间互不相同,每个盒子至少装一个球。
插板法,答案为 \(\binom {n-1}{m-1}\)。
\(\text{X}\):球全部相同,盒子全部相同。
考虑组合意义,相当于划分数,答案为
\[[x^n]1\times (1+x+x^2+\ldots)\times (1+x^2+x^4+\ldots)\times \ldots(1+x^m+x^{2m}+\ldots)\\
=[x^n]\prod_{i=1}^m \frac 1 {1-x^i}
\]
然后对于这个,我们先求逆,然后取 \(\ln\) ,并将其展开,得到:
\[\sum_{i=1}^m\ln(1-x^i)=\sum_{i=1}^m(-\sum_{j=1}\frac {x^{ij}}j)\\
=-\sum_{i=1}^m\sum_{j=1}\frac {1}{j}x^{ij}
\]
在模 \(x^{n+1}\) 意义下,有效值只有 \(O(n\ln n)\) 个,我们对每个位置暴力修改,然后 \(exp\) 后求逆即可。
有个叫 付公主的背包 的题也差不多。
\(\text{XI}\):球全部相同,盒子全部相同,每个盒子至多装一个球。
答案也为 \([n\le m]\)。
\(\text{XII}\):球全部相同,盒子全部相同,每个盒子至少装一个球。
先令 \(n\gets n-m\),然后就是 \(\text X\) 的情况。
AGC001E
有 \(n\) 个数对 \((a_i, b_i)\),求出
\[\sum_{i=1}^{n}\sum_{j=i + 1}^{n}{a_i+b_i+a_j+b_j \choose a_i+a_j}
\]
答案对 \(10 ^ 9 + 7\) 取模。
\(1\le a_i,b_i\le 2000,1\le n\le 10^5\)
我们考察组合意义:从 \((-a_i,-b_i)\) 走到 \((a_j,b_j)\) 的方案数,dp 即可,然后减去自己贡献后除 \(2\) 即可。
斯特林数
第一类斯特林数:\(n\brack m\),把阶为 \(n\) 集合分割为 \(k\) 个非空轮换的个数
第二类斯特林数:\(n\brace m\),把阶为 \(n\) 集合分割为 \(k\) 个非空子集的个数
递推公式:
\[{n\brack m}={n-1\brack m-1}+(n-1)\times {n-1\brack m}\\
{n\brace m}={n-1\brace m-1}+m\times {n-1\brace m}\\
\]
斯特林数和上升下降幂:
\[x^\overline n=\sum_{k=0}{n\brack k}x^k\\
x^n=\sum_{k=0}{n\brace k}x^\underline k\\
x^\underline n=\sum_{k=0}^n{n\brack k}(-1)^{n-k}x^k\\
x^n=\sum_{i=0}^n{n\brace k}(-1)^{n-k}x^\overline k
\]
证明鸽了,大概是归纳法。
还有斯特林数的生成函数,这跟多项式求生成函数有密切的联系
\[\sum_{i=0}{n\brace i}x^i=(\sum_{k=0}\frac {k^n}{k!}x^k)e^{-1}\\
\sum_{i=0}{i\brace m}\frac {x^i}{i!}=\frac{(e^x-1)^m}{m!}\\
\sum_{i=0}{n\brack i}x^i=x^\overline n\\
\sum_{i=0}{i\brack m}\frac {x^i}{i!}=\frac {(-1)^m\ln^m(1-x)} {m!}
\]
还有第二类斯特林数通项公式:
\[n^m=\sum_{k=0}^n{n\brace k}\binom m k k!
\\{n\brace m}=\frac 1 {m!}\sum_{k=0}^m(-1)^{m-k}\binom m k k^n
\]
斯特林范德蒙德卷积,斯特林反演:鸽了
CF961G Partitions
\[\sum_{i=1}^ni\binom {n-1}{i-1}{n-i\brace k-1}
\]
\(1\le n,k\le 2\times 10^5\)
开始推式子:
\[\sum_{i=1}^ni\binom {n-1}{i-1}{n-i\brace k-1}=\frac 1 n\sum_{i=1}^ni^2\binom {n}{i}{n-i\brace k-1}
\]
\(\binom n i\) 可以通过 EGF 的卷积产生,\({p \brace {k-1}}\) 的 EGF 为 \(\frac {(e^x-1)^{k-1}}{(k-1)!}\), \(i^2=(i-1)i+i\) 的 EGF 为 \(x^2e^x+xe^x=(x+x^2)e^x\),所以答案就是:
\[[\frac {x^n}{n!}]\frac 1 n(x+x^2)e^x\frac{(e^x-1)^{k-1}}{(k-1)!}\\
=[\frac {x^n}{n!}]\frac 1 n(x+x^2)(e^x-1+1)\frac{(e^x-1)^{k-1}}{(k-1)!}\\
=[\frac {x^n}{n!}]\frac 1 n(x+x^2)(k\frac{(e^x-1)^{k}}{k!}+\frac{(e^x-1)^{k-1}}{(k-1)!})\\
\]
然后将这个东西展开:
\[\frac 1 n(kn{n-1\brace k}+kn(n-1){n-2\brace k}+n{n-1\brace k-1}+n(n-1){n-2\brace k-1})\\
=k{n-1\brace k}+{n-1\brace k-1}+(n-1)(k{n-2\brace k}+{n-2\brace k-1})\\
={n\brace k}+(n-1){n-1\brace k}
\]
然后 \(O(n)\) 计算即可
P6620 [省选联考 2020 A 卷] 组合数问题
给定 \(x,n,p\) 和 \(m\) 次多项式 \(f(x)\),请计算一下式子的值:
\[\sum_{k=0}^nf(k)\times x^k\times \binom n k \bmod p
\]
\(1\le n,x,p\le 10^9,1\le m\le 10^3\)
由于下降幂性质比较好,所以我们将式子 \(f(x)\) 转化成下降幂形式,记为 \(f(x)=\sum_{k=0}^mb_kx^\underline k\),然后推一下式子:
\[\sum_{k=0}^nx^k\times \binom n k\times (\sum_{i=0}^mb_ik^\underline i)\\
=\sum_{i=0}^mb_i\sum_{k=0}^nx^k\times \binom n k\times k^\underline i\\
=\sum_{i=0}^mb_i\sum_{k=i}^nx^k\times \binom n k\times k^\underline i\\
=\sum_{i=0}^mb_i\sum_{k=i}^nx^k\times \frac{n!}{(n-k)!k!}\times \frac{k!}{(k-i)!}\\
=\sum_{i=0}^mb_i\sum_{k=i}^nx^k\times \frac {n!}{(n-k)!(k-i)!}\\
=\sum_{i=0}^mb_in^\underline i\sum_{k=i}^nx^k\times \frac {(n-i)!}{(n-k)!(k-i)!}\\
=\sum_{i=0}^mb_in^\underline i\sum_{k=0}^{n-i}x^{k+i}\times \frac {(n-i)!}{(n-k-i)!k!}\\
=\sum_{i=0}^mb_in^\underline ix^i\sum_{k=0}^{n-i}x^{k}\times \binom {n-i}k\\
=\sum_{i=0}^mb_in^\underline ix^i(x+1)^{n-i}\\
\]
然后就可以 \(O(m^2)\) 做了
P2791 幼儿园篮球题
给出 \(L\) 和 \(Q\) ,表示有 \(Q\) 次询问,每次给定 \(n,m,k\) 然后求:
\[\frac {1}{\binom n k}\sum_{i=0}^k\binom m i\binom {n-m}{k-i}i^L
\]
\(1\le L\le 2\times 10^5,1\le Q\le 200,1\le n,m,q\le 2\times 10^7\)
\[\sum_{i=0}^k\binom m i\binom {n-m}{k-i}\sum_{j=0}^L {L\brace j}i^\underline j\\
=\sum_{j=0}^L{L\brace j}\sum_{i=0}^k\binom m i\binom {n-m}{k-i}i^\underline j\\
=\sum_{j=0}^L{L\brace j}\sum_{i=j}^k\binom m i\binom {n-m}{k-i}i^\underline j\\
=\sum_{j=0}^L{L\brace j}j!\sum_{i=j}^k\binom m i\binom {n-m}{k-i}\binom i j\\
=\sum_{j=0}^L{L\brace j}j!\sum_{i=j}^k\binom m j\binom{m-j}{i-j}\binom {n-m}{k-i}\\
=\sum_{j=0}^L{L\brace j}j!\binom m j\sum_{i=j}^k\binom{m-j}{i-j}\binom {n-m}{k-i}\\
=\sum_{j=0}^L{L\brace j}j!\binom m j\binom {n-j}{k-j}\\
\]
然后预处理第二类斯特林数,组合数就可以做到 \(O(n+QL+L\log L)\)
P5395 第二类斯特林数·行
第二类斯特林数\(\begin{Bmatrix} n \\m \end{Bmatrix}\)表示把\(n\)个不同元素划分成\(m\)个相同的集合中(不能有空集)的方案数。
给定\(n\),对于所有的整数\(i\in[0,n]\),你要求出\(\begin{Bmatrix} n \\i \end{Bmatrix}\)。
由于答案会非常大,所以你的输出需要对\(167772161\)(\(2^{25}\times 5+1\),是一个质数)取模。
我们来推一下式子:
\[m^n=\sum_{k=0}^n{n\brace k} m^\underline k=\sum_{k=0}^n{n\brace k}k!\binom m k \\
\]
然后 \(n\ge m\) 二项式反演一下,得到:
\[{n\brace m}m!=\sum_{k=0}^{m}\binom m k k^n(-1)^{m-k}\\
{n\brace m}=\sum_{k=0}^{m}\frac {k^n(-1)^{m-k}}{(m-k)!k!}\\
=\sum_{k=0}^m \frac {k^n}{k!}\times \frac {(-1)^{m-k}}{(m-k)!}
\]
相当与 \(\frac {k^n} {k!}\) 和 \(\frac {(-1)^k}{k!}\) 卷积,NTT 解决。
P5408 第一类斯特林数·行
第一类斯特林数\(\begin{bmatrix}n\\ m\end{bmatrix}\)表示将\(n\)个不同元素构成\(m\)个圆排列的数目。
给定\(n\),对于所有的整数\(i\in[0,n]\),你要求出\(\begin{bmatrix}n\\ i\end{bmatrix}\)。
由于答案会非常大,所以你的输出需要对\(167772161\)(\(2^{25}\times 5+1\),是一个质数)取模。
还是来推式子:
\[x^\overline n=\sum_{k=0}^n {n\brack k}x^k
\]
所以如果我们知道了 \(x^\overline n\) 和 \((x+n)^\overline n\) ,我们就知道了 \(x^\overline{2n}\)。
然后问题在于在知道 \(x^\overline n\) 的情况下如何计算 \((x+n)^\overline n\),记 \(f(x)=x^\overline n,[x^i]f_i=a_i\) 。
\[f(x+n)=\sum_{i=0}^n a_i(x+n)^i\\
=\sum_{i=0}^n a_i(\sum_{j=0}^i \binom i jx^{j}n^{i-j})\\
=\sum_{j=0}^n x^j\sum_{i=j}^n \binom i ja_in^{i-j}\\
=\sum_{j=0}^n\frac {x^j}{j!}\sum_{i=j}^na_ii!\frac{n^{i-j}}{(i-j)!}\\
设 g(x)=a_{x} x!,g'(x)=g(n-x),h(x)=\frac {n^{x}}{x!}\\
=\sum_{j=0}^n\frac {x^j}{j!}\sum_{i=0}^{n-j}g(i+j)h(i)\\
=\sum_{j=0}^n\frac {x^j}{j!}\sum_{i=0}^{n-j}g'(n-i-j)h(i)
\]
然后后面部分可以 NTT 算出来,然后再用一次 NTT 乘起来就行了。
第一类斯特林数·列
第一类斯特林数\(\begin{bmatrix}n\\ m\end{bmatrix}\)表示将\(n\)个不同元素构成\(m\)个圆排列的数目。
给定\(n,k\),对于所有的整数\(i\in[0,n]\),你要求出\(\begin{bmatrix}i\\ k\end{bmatrix}\)。
由于答案会非常大,所以你的输出需要对\(167772161\)(\(2^{25}\times 5+1\),是一个质数)取模。
我们考虑使用二项式定理
\[(1+x)^t=\sum_{i=0}t^\underline i\frac {x^i}{i!}\\
=\sum_{i=0}\frac {x!}{i!}\sum_{j=0}^i(-1)^{i-j}{i\brack j}t^j\\
=\sum_{i=0}t^i\sum_{j=i}\frac{x^j}{j!}(-1)^{j-i}{j\brack i}\\
(1+x)^t=e^{t\ln(1+x)}=\sum_{i=0}\frac{t^i\ln^i(1+x)}{i!}\\
\therefore \sum_{i=0}t^i\sum_{j=i}\frac{x^j}{j!}(-1)^{j-i}{j\brack i}=\sum_{i=0}t^i\frac{\ln^i(1+x)}{i!}\\
\therefore \sum_{j=i}\frac{x^j}{j!}(-1)^{j-i}{j\brack i}=\frac{\ln^i(1+x)}{i!}\\
\sum_{j=m}\frac{x^j}{j!}(-1)^{j-m}{j\brack m}=\frac{\ln^m(1+x)}{m!}\\
\sum_{j=0}\frac{x^j}{j!}(-1)^{j-m}{j\brack m}=\frac{\ln^m(1+x)}{m!}\\
\]
然后把后面的式子求出来就可以了
生成函数
拉格朗日反演:
对于多项式 \(F(G(z))=z,[z^0]F(z)=0\),有
\[[z^n]F(z)=\frac 1 n[z^{-1}](\frac 1 {G(z)})^n=\frac 1 n[z^{n-1}](\frac z {G(z)})^n
\]
拓展拉格朗日反演:
\[[z^n]H(F(z))=\frac 1 n[x^{n-1}]((\frac z {G(z)})^nH'(z))=\frac 1 n[x^{-1}]((\frac 1 {G(z)})^nH'(z))
\]
证明同样鸽了
P2767 树的数量
求出包含 \(n\) 个节点(无标号)的有根 \(m\) 叉树的个数,对 \(10\,007\) 取模。
两个有根树相同,当且仅当其根节点相同,且从左到右每一棵子树也相同。特别地,两个有根树均为空树,视为两个有根树相同。
我们考虑生成函数,设 \(f(z)\) 为答案的生成函数,每颗子树可以为空或者子树,且子树区分,所以
\[f(z)=z(1+f(z))^m
\]
所以 \([z^0]f(z)=0\) 且:
\[z=\frac {f(z)}{(1+f(z))^m}
\]
定义逆函数:
\[g(w)=\frac w {(1+w)^m}
\]
则根据 Lagrange 反演,得到:
\[[z^n]f(z)=\frac 1 n[w^{n-1}](\frac w {g(w)})^n
\]
然后将 \(g(w)=\frac w {(1+w)^m}\) 代入,得到:
\[[z^n]f(z)=\frac 1 n[w^{n-1}](1+w)^{mn}
\]
然后用二项式定理,得到答案为 \(\frac {\binom {nm}{n-1}} n\)
广义二项级数:鸽了
十分重要,但是看不懂,先鸽了
没学过微分方程,鸽了
鸽了