特殊計數序列——第二類斯特林(stirling)數
阿新 • • 發佈:2019-04-27
計數 line 序列 nlogn 並且 變化 方案 關於 必須 個盒子中共有\((m-i)^n\)種放法
計算式
\[ S(n,m)=S(n-1,m-1)+mS(n,m) \]
\(S(0,0)=1,S(i,0)=0(i>0)\)
組合意義
將\(n\)個不可分辨的小球放入\(m\)個不可分辨的盒子中,且每個盒子非空
那麽上面的式子就類似與\(dp\)的轉移了
性質
1、\(S(n,m)=\frac{1}{m!}\sum_{i=0}^m(-1)^i\dbinom{m}{i}(m-i)^n\)
證明:考慮組合意義
先將盒子變成有序,最後除以\(m!\)即可
第二類斯特林數保障每個盒子非空,故考慮容斥,每次欽定\(i\)個盒子必須為空,選法有\(\dbinom{m}{i}\)種,\(n\)個小球放入剩下的\((m-i)\)
2、\(n^m=\sum_{i=0}^nS(m,i)*i!*\dbinom{n}{i}\)
證明:依然是考慮組合意義,左邊是\(m\)個小球隨意的放入\(n\)個盒子的方案數,並且考慮順序
右邊是枚舉非空的盒子一共有\(i\)個,球放入的方案數為\(S(m,i)\),有順序的選\(i\)個盒子有\(i!*\dbinom{n}{i}\)種方案
關於這個式子還有一個小技巧:為了使\(S(m,i)\)和\(\dbinom{n}{i}\)的值均大於\(0\),一定有\(i\leq min(n,m)\),所以我們枚舉的sigma上界是可以根據我們的需求進行變化的
求解第二類斯特林數
求\(S(n,m)\)的值
普通求解是\(O(n^2)\)的遞推,考慮其他的方法
由性質1的式子變形可以得到
\[
S(n,m)=\frac{1}{m!}\sum_{i=0}^m(-1)^i\frac{m!}{k!(m-k)!}(m-k)^n
\]
\[ S(n,m)=\sum_{i=0}^n\frac{(-1)^k}{k!}\frac{(m-k)^n}{(m-k)!} \]
直接FFT即可,時間復雜度\(O(nlogn)\)
特殊計數序列——第二類斯特林(stirling)數