二项式反演
\[f(n)=\sum^{n}_{i=0}(-1)^iC^i_ng(i)<->g(n)=\sum^n_{i=0}(-1)^iC^i_nf(i)
\]
\[f(n)=\sum^n_{i=0}C^i_ng(i)<->g(n)=\sum^n_{i=0}(-1)^{n-i}C^i_nf(i)
\]
第二类斯特林数
\(S^m_n\)表示的是把 \(n\) 个不同的小球放在 \(m\)个相同的盒子里方案数。盒子不能为空
也可以表示\(S^m_n=\{^n_m\}\)
\[S^m_n=S^{m-1}_{n-1}+mS^m_{n-1}
\]
性质:
\[n^m=\sum^m_{i=0}S^i_m*i!*C^i_n
\]
理解:左边是 \(m\)个球可以任意放在 \(n\) 个盒子里的答案
右边就是枚举有多少个盒子空着,然后组合数枚举一下。最后因为盒子不同所以要乘一个 \(i!\)
通项公式:
设\(f(n)=n^m,g(i)=S^i_m*i!\)
反演一下
\[S^n_m*n!=\sum^n_{i=0}i^m*(-1)^{n-i}*C^i_n
\]
\[\to S^n_m=\sum^n_{i=0}\frac{(-1)^{n-i}*i^m}{i!*(n-i)!}
\]
求法:发现是卷积形式,直接\(NTT\)
与自然数幂的关系
\[sum(n)=\sum^n_{i=0}i^k
\]
\[=\sum^n_{i=0}\sum^k_{j=0}S^j_ki^{\underline{j}}
\]
\[=\sum^k_{j=0}S^j_k\sum^n_{i=0}i^{\underline{j}}
\]
\[=\sum^k_{j=0}S^j_kj!\sum^n_{i=0}C^j_i
\]
\[=\sum^k_{j=0}S^j_kj!C^{j+1}_{n+1}
\]
\[=\sum^k_{j=0}S^j_k\frac{(n+1)^{\underline{j+1}}}{j+1}
\]
注:\(\sum^n_{i=0}C^j_i=C^{j+1}_{n+1}\) 枚举\(j+1\)的右端点\(i+1\),则相当于从\(i\)个点中选\(j\)个点
第一类斯特林数
\(s^m_n\)表示的是把 \(n\) 个不同的小球串成 \(m\) 个项链(圆)的方案数
也可以表示\(s^m_n=[^n_m]\)
\[s^m_n=s^{m-1}_{n-1}+(n-1)s^m_{n-1}
\]
性质:
\[\sum^n_{i=0}s^i_n=n!
\]
理解:一组圆排列对应一组置换
求法:
考虑\(x^{\overline{n}}=\sum^{n}_{i=1}s_n^ix^i\)
上升幂即是这个数列的生成函数。
\[x^{\overline{n}}=\sum_{i=0}^{\infty}s_{n}^{i}{x}^i
\]
所以我们把$ x^{\overline{n}}$看成一个多项式,求出这个多项式的 \(i\) 次项系数就是 \(s_{n}^{i}\)啦
怎么求呢,暴力$ FFT(NTT)$求出 \((x)\times(x+1)\times...(x+n-1)\) ,这样时间复杂度就是$ O(n^2log_2n)$
用分治\(FFT\),时间复杂度是 \(O(nlog^2_2n)\)
\(O(nlong_n)\)做法(类似多项式求逆):
\[F(x)^n=\prod^{n-1}_{i=0}(x+i),F(x)^{2n}=F(x)^nF(x+n)^n
\]
求出\(F(x)^n=\sum^n_{i=0}a_ix^i\)后:
\[F(x+n)^n=\sum^n_{i=0}a_i(x+n)^i
\]
\[=\sum^n_{i=0}a_i\sum^i_{j=0}s^j_in^{i-j}x_j
\]
\[=\sum^n_{i=0}(\sum^n_{j=i}n^{j=i}a_j)x^i
\]
\[=\sum^n_{i=0}(\sum^n_{j=i}\frac{j!}{i!(j-i)!}n^{j-i}a_j)x^i
\]
\[=\sum^n_{i=0}(i!)^{-1}x^i(\sum^n_{j=i}(\frac{n^{j-i}}{(j-i)!})*(j!a_j))
\]
斯特林反演
下降幂:$ {x}{\underline{i}}=\prod_{j=0}{i-1}(x-j)$
上升幂:$ x{\overline{i}}=\prod_{j=0}{i-1}(x+j) $
性质:
$ xn=\sum_{i=1}nS_{n}{i}{x}{\underline{i}}$
证明(数学归纳法):
\(n=1\)时易证
\[x^n=x^{n-1}x=x\sum_{i=1}^{n-1}S_{n-1}^{i}{x}^{\underline{i}}
\]
由于$ {x}{\underline{i+1}}={x}{\underline{i}}(x-i)$
\[\therefore\ =\sum_{i=1}^{n-1}S_{n-1}^{i}{x}^{\underline{i+1}}+\sum_{i=1}^{n-1}iS_{n-1}^{i}{x}^{\underline{i}}
\]
由于$ S_n0=0,S_n{n+1}=0$
\[\therefore\ =\sum_{i=1}^{n}S_{n-1}^{i-1}{x}^{\underline{i}}+\sum_{i=1}^{n}iS_{n-1}^{i}{x}^{\underline{i}}
\]
\[=\sum_{i=1}^nS_{n}^{i}{x}^{\underline{i}}
\]
另:
\[x^{\underline n}=(-1)^n(-x)^{\overline n},x^{\overline n=(-1)^n(-x)^{\underline n}}
\]
\[x^n=\sum^n_{i=1}S^i_nx^{\underline{i}}
\]
\[x^{\overline{n}}=\sum^n_{i=1}s^i_nx^i
\]
\[x^n=\sum^n_{i=1}S^i_n(-1)^{n-i}x^{\overline{i}}
\]
\[x^{\underline{n}}=\sum^n_{i=1}s_n^i(-1)^{n-i}x^i
\]
后面两个\(−1\)的幂次就对了呢
比如
\(x^{\underline{4}}=x^4-6x^3+11x^2-6x\)
\(x^{\overline{4}}=x^4+6x^3+11x^2+6x\)
反转公式:
\[\sum^n_{k=m}(-1)^{n-k}s^k_nS^m_k=[m=n]
\]
\[\sum^n_{k=m}(-1)^{n-k}S^k_ns^m_k=[m=n]
\]
\[m^{\underline n}=\sum^n_{i=0}s_n^i(-1)^{n-i}m^i
\]
\[=\sum^n_{i=0}s^i_n(-1)^{n-i}\sum_{j=0}^iS^j_im^{\underline j}
\]
\[=\sum^n_{i=0}m^{\overline i}\sum^n_{j=i}(-1)^{n-j}s^j_nS^i_j
\]
\[m^n=\sum^n_{i=0}S^i_nm^i
\]
\[=\sum^n_{i=0}S^i_n(-1)^i(-m)^i
\]
\[=\sum^n_{i=0}S^i_n(-1)^i\sum^i_{j=0}s^j_i(-m)^j
\]
\[=\sum^n_{i=0}m^i\sum^n_{j=i}(-1)^{i-j}S_n^js^i_j
\]
推式:
已知:\(g(n)=\sum^n_{k=0}(-1)^{n-k}s^k_nf(k)\)
\[f(n)=\sum^n_{k=0}[k=n]f(k)
\]
\[=\sum^n_{k=0}\sum^n_{j=k}S^j_ns^k_j(-1)^{j-k}f(k)
\]
\[=\sum^n_{k=0}S_n^k\sum^k_{j=0}(-1)^{k-j}s^j_kf(j)
\]
\[=\sum^n_{k=0}S^k_ng(k)
\]
来源:https://www.cnblogs.com/aurora2004/p/12624997.html