真的是入门……
第一类斯特林数
({nrack m}) 表示 (n) 个不同的数分成 (m) 个非空圆排列的方案数。
递推:({nrack m} = {n-1rack m-1} + (n-1){n-1rack m})。
从组合意义的角度考虑,第 (n) 个数可以单独新成为一个原排列,或者插入到前 (n-1) 个数的前面。
边界条件:({nrack 0} = [n=0])。
第二类斯特林数
({nrace m}) 表示 (n) 个不同的小球放入 (m) 个相同的盒子中的方案数。
递推:({nrace m} = {n-1race m-1} + m{n-1race m})。
还是从组合意义的角度考虑,这里就不说了。
边界条件:({nrace 0} = [n=0])。
应用
下降幂:(x^{underline n} = frac{x!}{(x-n)!})。
上升幂:(x^{overline n} = frac{(x+n-1)!}{(x-1)!})。
一个柿子:(inom{n}{k} imes k^{underline m} = inom{n-m}{k-m} imes n^{underline m})。
例题:[省选联考 2020 A 卷] 组合数问题 题解
[m^n = sumlimits_{i=0}^{min(n,m)} inom{m}{i}{nrace i}i!
]
上面这个式子很重要,务必要记住。
[sumlimits_{i=0}^n inom{i}{j} = inom{n+1}{j+1}
]
上式中,(j) 是一个已知的数。从组合意义的角度考虑,前 (i) 个物品中取 (j) 个物品就相当于从 (n+1) 个物品中选 (j+1) 个物品,这是一种快速求一行组合数的方法。
注意:组合数推式子的过程中尽量把所有的阶乘拆开,把能化简的尽量化简。也可以采用交换求和顺序的方法。
自然数幂和:求 (sumlimits_{i=0}^n i^k),其中 (k) 较小,(n) 较大。
[egin{aligned}
sumlimits_{i=0}^n i^k
&= sumlimits_{i=0}^nsumlimits_{j=0}^k inom{i}{j}{krace j}j! \
&= sumlimits_{j=0}^k {krace j} j! sumlimits_{i=0}^n inom{i}{j} \
&= sumlimits_{j=0}^k {krace j} j! inom{n+1}{j+1} \
&= sumlimits_{j=0}^k {krace j} j! frac{(n+1)!}{(j+1)!(n-j)!} \
&= sumlimits_{j=0}^k {krace j} frac{(n+1)^{underline{j+1}}}{j+1}
end{aligned}]
CF932E Team Work
求 (sumlimits_{i=1}^n inom{n}{i}i^k),其中 (k) 较小,(n) 较大。
[egin{aligned}
sumlimits_{i=1}^n inom{n}{i}i^k
&= sumlimits_{i=0}^n inom{n}{i}sumlimits_{j=0}^k inom{i}{j}{krace j}j! \
&= sumlimits_{j=0}^k {krace j} j! sumlimits_{i=0}^n inom{n}{i}inom{i}{j} \
&= sumlimits_{j=0}^k {krace j} j! sumlimits_{i=0}^n frac{n!}{i!(n-i)!} imes frac{i!}{j!(i-j)!} \
&= sumlimits_{j=0}^k {krace j} sumlimits_{i=0}^n frac{n!}{(n-i)!(i-j)!} \
&= sumlimits_{j=0}^k {krace j} sumlimits_{i=0}^n frac{n!(n-j)!}{(n-i)!(i-j)!(n-j)!} \
&= sumlimits_{j=0}^k {krace j} frac{n!}{(n-j)!} sumlimits_{i=0}^n frac{(n-j)!}{(n-i)!(i-j)!} \
&= sumlimits_{j=0}^k {krace j} frac{n!}{(n-j)!}sumlimits_{i=0}^n inom{n-j}{n-i} \
&= sumlimits_{j=0}^k {krace j} frac{n!}{(n-j)!}2^{n-j}
end{aligned}]
然后发现这个东西可以 (mathcal{O}(k^2)) 计算,这道题就做完了。