蒟蒻的斯特林数笔记整理,未完待续。
相关公式
二项式定理
(a+b)n=k=0∑n(kn)akbn−k
二项式反演
fn=i=0∑n(−1)i(in)gi⟺gn=i=0∑n(−1)i(in)fi
fn=i=0∑n(in)gi⟺gn=i=0∑n(−1)n−i(in)fi
斯特林数的一些恒等式
{nm}=m!1k=0∑m(−1)m−k(km)kn
推导
xnxnxn{nx}x!=k=0∑n{nk}xk=k=0∑n{nk}(kx)k!=k=0∑x(kx){nk}k!=k=0∑x(−1)x−k(kx)kn
xn=k=0∑n{nk}xk=k=0∑n(−1)n−k{nk}xk
mn=k=0∑m{nk}mk=k=0∑m{nk}(km)⋅k!
xn=k=0∑n[nk](−1)n−kxk
xn=k=0∑n[nk]xk
n!=k=0∑n[nk]
斯特林反转公式
k=m∑n(−1)n−k[nk]{km}=[m=n]
k=m∑n(−1)n−k{nk}[km]=[m=n]
斯特林反演
f(n)=k=0∑n{nk}g(k)⟺g(n)=k=0∑n(−1)n−k[nk]f(k)
例题
======i=1∑n(in)×iki=1∑n(in)×j=0∑k{kj}ijj=0∑k{kj}i=1∑nij(in)j=0∑k{kj}i=1∑n(i−j)!i!×i!(n−i)!n!j=0∑k{kj}i=1∑n(i−j)!(n−i)!n!j=0∑k{kj}i=1∑n(n−in−j)×njj=0∑k{kj}nj×2n−j
=====i=0∑nj=0∑i{ij}2j⋅j!i=0∑nj=0∑n2j{ij}⋅j!i=0∑nj=0∑n2jk=0∑j(−1)j−k(kj)kij=0∑n2jk=0∑j(−1)j−k(kj)i=0∑nkij=0∑n2jk=0∑j(−1)j−kk!(j−k)!j!k−1kn+1−1j=0∑n2j⋅j!k=0∑j(j−k)!(−1)j−kk!(k−1)kn+1−1
A(i)=i!(−1)i,B(i)=i!(i−1)in+1−1→A∗B
ans=P×∑wi
P=s=1∑ns(s−1n−1){n−sk−1}=s=1∑ns(s−1n−1)(k−1)!1t=0∑k−1(−1)k−1−t(tk−1)tn−s=(k−1)!1t=0∑k−1(−1)k−1−t(tk−1)s=1∑ntn−ss(s−1n−1)=(k−1)!1t=0∑k−1(−1)k−1−t(tk−1)s=1∑ntn−s(s−1+1)(s−1n−1)=(k−1)!1t=0∑k−1(−1)k−1−t(tk−1)((n−1)s=1∑ntn−s(s−2n−2)+s=1∑ntn−s(s−1n−1))=(k−1)!1t=0∑k−1(−1)k−1−t(tk−1)((n−1)s=0∑n−2tn−2−s(sn−2)+s=0∑n−1tn−1−s(sn−1))=(k−1)!1t=0∑k−1(−1)k−1−t(tk−1)((n−1)(t+1)n−2+(t+1)n−1)
求斯特林数
[nk]=[n−1k−1]+(n−1)[n−1k],[n0]=[n=0]
{nk}={n−1k−1}+k{n−1k},{n0}=[n=0]
以上式子可以 O(n2) 推出斯特林数。
{nm}=m!1k=0∑m(−1)m−k(km)kn
上式可以 O(mlogn) 求一个第二类斯特林数。
第二类斯特林数·行
求 {n0},{n1},{n2},…,{nn} 的值,O(nlogn) 的复杂度。
{nm}=m!1k=0∑m(−1)m−k(km)kn=m!1k=0∑m(−1)m−kk!(m−k)!m!kn=k=0∑m(m−k)!(−1)m−kk!kn
[xk]g(x)=k!(−1)k,[xk]f(x)=k!kn
{nm}=[xm](g∗f)(x)
第一类斯特林数·行
求 [n0],[n1],[n2],…,[nn] 的值,O(nlogn) 的复杂度。
xn=i=0∏n−1(x+i)=i=0∑n[ni]xi
[nm]=[xm]xn
考虑求 xn ,倍增:
x2ni=0∏2n−1(x+i)f(x)=xn(x+n)n=i=0∏n−1(x+i)×i=0∏n−1(x+n+i)=f0(x)∗f0(x+n)
有时候不是 n 是奇数那就先算出 n−1 再乘上 (x+n−1) ,这个线推完事了。
问题是已知 f(x) ,求 f(x+c) ,c 是常数(这里其实就是 n),为了方便这里用 a 表示 f(x) 的系数。
f(x+c)=i=0∑nai(x+c)i=i=0∑naik=0∑i(ki)ci−kxk=i=0∑nk=0∑i(ki)aici−kxk
提取 xk 系数就行了:
[xk]f(x+c)=i=k∑n(ki)aici−k=i=k∑nk!(i−k)!i!aici−k=i=k∑nk!(i−k)!i!aici−k=k!1i=k∑naii!⋅(i−k)!ci−k=k!1i=0∑n−kai+k(i+k)!⋅i!ci
复杂度:
T(n)=T(2n)+O(nlogn)=O(nlogn)