1. 程式人生 > >第二類斯特靈數學習筆記

第二類斯特靈數學習筆記

簡單的介紹一下吧,斯特靈數其實有很多好玩的性質和擴充套件的。

定義

\(S(n, m)\)表示把\(n\)不同的球放到\(m\)個相同的盒子裡,且不允許盒子為空的方案數

\(S\)為第二類斯特靈數

計算方法

遞推:

考慮第\(n\)個球放到了哪裡

第一種情況是自己佔一個盒子,方案為\(S(n - 1, m - 1)\)

第二種情況是和之前的元素共佔\(m\)個盒子,方案為\(S(n - 1, m) * m\),最後的係數是考慮放在不同位置。

這裡我們認為{1}{2 4}{3}與{1}{2}{3 4}是不同的方案

而{1}{2 4}{3}與{1}{3}{2 4}是相同的方案

綜上

\(S(n, m) = S(n - 1, m - 1) + S(n - 1, m) * m\)

邊界條件\(S(0, 0) = 1\)

容斥

\(S(n, m) = \frac{1}{m!} \sum_{k = 0}^m (-1)^k C(m, k) (m - k)^n\)

也比較好理解,我們去列舉一個空盒子的個數

答案 = 無視空盒子放的方案 - 至少有一個盒子為空的方案 + 至少有兩個盒子為空的方案 + \(\dots\)

顯然,這個式子可以用FFT優化,因此我們可以在\(O(nlogn)\)的複雜度內得到一行的斯特靈數

性質

  1. \[n^k=\sum_ { i=0}^k S(k,i)×i!×C_{n}^i\]

  2. \(S(n, 2) = 2^{n - 1} - 1\)

相關推薦

第二學習筆記

簡單的介紹一下吧,斯特靈數其實有很多好玩的性質和擴充套件的。 定義 設\(S(n, m)\)表示把\(n\)個不同的球放到\(m\)個相同的盒子裡,且不允許盒子為空的方案數 稱\(S\)為第二類斯特靈數 計算方法 遞推: 考慮第\(n\)個球放到了哪裡 第一種情況是自己佔一個盒子,方案為\(S(n - 1,

第一類&第二學習筆記

第一類斯特林數 p p p個不同人圍著

UVA 10844 - Bloques (第二)

pro 壓縮 i++ ring styles () sub comm show UVA 10844 - Bloques 題目鏈接 題意:給定n

學習筆記第十六節:第一類,第二和Bell(坑)

正題       百度:“       在組合數學,Stirling數可指兩類數,第一類Stirling數和第二類Stirling數,都是由18世紀數學家James Stirling提出的。   

第一和第二學習

排列 using ron amp urn ons 生成函數 時間 www 最近在學第一類和第二類斯特林數。這裏記錄一下學習的知識點/模板還有題目。 https://blog.csdn.net/litble/article/details/80882581 https:/

Gym Gym 101147G 第二

event for cnblogs color ide hide col problem pan 題目鏈接:http://codeforces.com/gym/101147/problem/G 題意:n個人,去參加k個遊戲,k個遊戲必須非空,有多少種放法? 分析: 第二

HDU4045-第二

clu math cnblogs mat tin ring tdi [0 ios 題意 有n臺機器,每天選擇r臺,要求任意兩臺編號差值不小於k,並且r臺機器分成不超過m組。求不重樣的選擇有多少種組合(可以選多少天)。 數據範圍$1\leqslant n,r,k,m\leqs

HDOJ 3625 第一

als col ble ini php ios oid 允許 std 鏈接: http://acm.split.hdu.edu.cn/showproblem.php?pid=3625 題意: 有N個房間,每個房間裏有一把鑰匙,鑰匙隨機分配。如果手中有對應的鑰匙,就可以

hdu 2643 rank 第二

ini using cout cin type log ios cnblogs sum 題意:給定n個人,要求這n個人的所有可能排名情況,可以多個人並列(這個是關鍵)。 題解:由於存在並列的問題,那麽對於n個人,我們最多有n個排名,枚舉一下1~n,累加一下就好。(註意這裏是

新疆大學(新大)OJ xju 1006: 比賽排名 第二+階乘

bds 思路 jpg stat cin idt line main enter 題目鏈接:http://139.129.36.234/JudgeOnline/problem.php?id=1006 第二類斯特林數: 第二類Stirling數實際上是集合的一個拆分,表示將

【模板】第二Stirling

pre ble 出發 ati val span 兩種 定義 技術 第二類Stirling數實際上是集合的一個拆分,表示將n個不同的元素拆分成m個集合的方案數,記為 或者 。 第二類Stirling數的推導和第一類Stirling數類似,可以從定義出發考慮第n+1個元

Codeforces Round #100 E. New Year Garland (第二+dp)

using 情況 inline 顏色不同 force jai 相同 其中 problem 題目鏈接: http://codeforces.com/problemset/problem/140/E 題意: 聖誕樹上掛彩球,要求從上到下掛\(n\)層彩球。已知有\(m\)種顏色

關於第二的一丟丟東西

mat 得到 表示 重新 是我 isp logs spl gpo 關於第二類斯特林數的一丟丟東西 第二類斯特林數 S(n,m)表示有\(n\)個有區別小球,要放進\(m\)個相同盒子裏,且每個盒子非空的方案數 考慮一個很容易的遞推: \[S(n,m)=S(n-1,m-1)+

【BZOJ4555】求和(第二,組合數學,NTT)

name can efi fin def mes %d str ostream 【BZOJ4555】求和(第二類斯特林數,組合數學,NTT) 題面 BZOJ 題解 推推柿子 \[\sum_{i=0}^n\sum_{j=0}^iS(i,j)·j!·2^j\] \[=\sum_

【BZOJ5093】圖的價值(第二,組合數學,NTT)

ble math n) .cn fin eve 都是 max online 【BZOJ5093】圖的價值(第二類斯特林數,組合數學,NTT) 題面 BZOJ 題解 單獨考慮每一個點的貢獻: 因為不知道它連了幾條邊,所以枚舉一下 \[\sum_{i=0}^{n-1}C_{n-

第二

one width 公式 OS bds RM 圖片 you display 第二類斯特林數是將n個不同的球放入m個無差別的盒子中, 並且要求盒子非空的方案數。 1.通項公式為: 2.遞推公式: 證明如下: 假設要把n+1個球放入m個盒子裏則分析如下: (1)如果n

BZOJ 2159: Crash 的文明世界(樹形dp+第二+組合數)

tchar cpp def tmp %d ifdef gpo 組合數 const 題意: 給定一棵 \(n\) 個點的樹和一個常數 \(k\) , 對於每個 \(i\) , 求 \[\displaystyle S(i) = \sum _{j=1} ^ {n} \math

bzoj 4555 [Tjoi2016&Heoi2016]求和 NTT 第二 等比數列求和優化

src algo names AI space efi get com name [Tjoi2016&Heoi2016]求和 Time Limit: 40 Sec Memory Limit: 128 MBSubmit: 679 Solved: 534[Su

BZOJ5093 [Lydsy1711月賽]圖的價值 【第二 + NTT】

size init ret 計算 怎麽 math red ini () 題目鏈接 BZOJ5093 題解 點之間是沒有區別的,所以我們可以計算出一個點的所有貢獻,然後乘上\(n\) 一個點可能向剩余的\(n - 1\)個點連邊,那麽就有 \[ans = 2^{{n - 1

HDU 3625 Examining the Rooms【第一

long 方法 fff void 但是 min art ron get <題目鏈接> <轉載於 >>> > 題目大意:有n個鎖著的房間和對應n扇門的n把鑰匙,每個房間內有一把鑰匙。你可以破壞一扇門,取出其中的鑰匙,然後用取出鑰匙打開