二项式反演
[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)
]
[f(k)=sum_{i=k}^nC_i^kg(i)<->g(k)=sum_{i=k}^n(-1)^{i-k}C_i^kf(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
]
[ o 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_ksum^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_kfrac{(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) imes(x+1) imes...(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_isum^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) $
性质:
(x^n=sum_{i=1}^nS_{n}^{i}{x}^{underline{i}})
证明(数学归纳法):
(n=1)时易证
[x^n=x^{n-1}x=xsum_{i=1}^{n-1}S_{n-1}^{i}{x}^{underline{i}}
]
由于$ {x}{underline{i+1}}={x}{underline{i}}(x-i)$
[ herefore =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$
[ herefore =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)^{k-m}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)^isum^i_{j=0}s^j_i(-m)^j
]
[=sum^n_{i=0}m^isum^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^ksum^k_{j=0}(-1)^{k-j}s^j_kf(j)
]
[=sum^n_{k=0}S^k_ng(k)
]