學習筆記 斯特林數

2022-02-05 13:18:10 字數 2155 閱讀 8295

s(n,m)表示把n個元素組合成m個圓排列的方案數(注意是圓排列,n個元素的圓排列方案數:n!/n=(n-1)!)

說幾個:

o(n^2)遞推式:

考慮最後乙個放在**。

第乙個式子有乙個不錯的證明():

考慮遞推式,畫成橫座標m縱座標n的圖,只能往或者往右上走,邊權不同(1或者i(i是當前縱座標)

),乙個路徑的價值定義為邊權的乘積

求(0,0)到(m,n)的所有路徑的價值和。

顯然滿足o(n^2)遞推式

直接考慮,必然m次往右,n-m次往上,所以x(x+1)*...(x+n)中m次冪的係數就是s(n,m)的答案

這就類似於生成函式了

有利於我們尋找nlogn求s(n,*)的式子。

(也可以從dp(其實就是直接展開)轉移式子角度推出係數)

第二個式子,符號和m的奇偶性相關,所以用有符號斯特林數即可

用途:下降冪是因式分解之後的多項式,不利於變換,展開之後,可以方便交換求和號等等

例如:[bjoi2019]勘破神機

和一般的多項式求逆一樣,

f(n)->f(2*n)只要知道f(n+x)的每一項的值

帶入後二項式定理展開得到ntt式子。

例題:hdu 4372 count the buildings——第一類斯特林數

s(n,m)表示把n個不同元素放進m個相同盒子的方案數(m個集合)

還是考慮最後乙個放在**

第二類斯特林數(建成二斯)組合意義比較強大(畢竟沒有排列苛刻的限制嘛)

通項公式:

證明考慮容斥,列舉哪些個盒子一定不放球,其他愛放不放(venn圖)

或者反演:

本身通項公式就可以用ntt在o(mlogm)內求出s(n,1~m),

所以出現二斯的時候,可以考慮用通項公式換掉。

組合數可以組合意義處理,n次方,裡面還是m-k,考慮能否用ntt優化一下

例題:[heoi2016/tjoi2016]求和——第二類斯特林數

上面那個是拆掉斯特林數,

還有乙個重要的公式,可以放上斯特林數:

適用於n很大,而k比較小,斯特林數可以快速求出來。

而且,n^k乘方性質通常不夠優美,而組合數有豐富的組合意義,並且展開之後的形式也和ntt有些關係

甚至n^k前面還有一些階乘,可以嘗試消一消。

這樣n就直接放在了組合數的位置

考慮把組合數拆開消一消,,,把和n有關的列舉都乾掉。n放進指數或者底數等可以o(1)或者o(logn)求和的位置

cf932e team work——第二類斯特林數

什麼時候用通項公式,什麼時候把n^k代換呢?

1,考慮n^k和斯特林數哪個好求,或者都試一試

2.根據套路,給了n^k一定換成斯特林數,給了斯特林數換成通項公式。。、。。

比較實際的應用題:

hdu4625 jzptree——第二類斯特林數

其實推式子都可以模擬莫比烏斯反演

交換求和式,考慮貢獻

組合數學還可以考慮組合意義。數論也可以考慮數學意義。

交換求和式一般是把大的列舉放在內層,然後爭取再用考慮貢獻乾掉這個列舉。

學習筆記 斯特林數

組合意義 將 n 個有區別的小球放進 m 個無區別的盒子裡,且沒有空盒的方案數為第二類斯特林數,記為 s n,m 遞推式 s n,m m s n 1,m s n 1,m 1 組合意義證明 把乙個新的小球放進盒子裡,可以選擇放進 m 個盒子中的乙個,也可以放進乙個新的盒子中.計算公式 s n,m fr...

斯特林數 斯特林反演

第一類stirling數 s n,m 也可記為 beginn m end 第一類stirling分為無符號第一類stirling數 s u n,m 和帶符號第一類stirling數 s s n,m 他們分別表現為其公升階函式和降階函式的各項係數,形式如下 x x cdot x 1 cdot x 2 ...

二項式反演 斯特林數 斯特林反演 學習筆記

從錯排數講起,考慮乙個有n個元素的排列,若乙個排列中所有的元素都不在自己原來的位置上,那麼這樣的排列就稱為原排列的乙個錯排。用容斥來解決這個問題,不難發現錯排數即為g n i 1n 1 i ni n i 考慮二項式定理,1 1 n i 0n 1 i ni 0 上式當n 0時值為1,所以有 i 0n ...