第一類&第二類斯特林數學習筆記
第一類斯特林數
p個不同人圍著 m個不同圓桌坐,要求每桌非空,方案數即為 S(p,k)
遞推
邊界
S(p,p)=1(p>=0),S(p,0)=0(p>=1)
分類討論一下…
新加入的人可以新開一張桌子,前面的方案即為
S(p−1,k−1)
也可以和之前的人坐,先把前面的人安排好了的方案數是
S(p−1,k),我們讓這個人任選一個人,坐在他的左邊,方案數即為
(p−1)∗S(p−1,k)
綜上,轉移即為
S(p,k)=S(p−1,k−1)+(p−1)∗S(p−1,k)
複雜度
O(n2)
性質
第一類斯特林數
S(n,m)其實可以表示為
x的
n次上升冪的第
m項係數
即
xn↑=x(x+1)(x+2)⋯(x+n−1)=i=0∑ns(n,k)xk
可以分治NTT或FFT求出,複雜度
O(nlogn2)
第二類斯特林數
n個不同球放入 m個相同盒子的方案數即為 S(n,m)
遞推
仍然分類討論
新加入的球可以新開一個盒子,即為
S(n−1,m−1)
或者在之前任選一個盒子放入,即為
m∗S(n−1,m−1)
綜上所述,有
S(n,m)=S(n−1,m−1)+m∗S(n−1,m−1)
複雜度
O(n2)
容斥原理
我們可以列舉至少有多少個盒子是空的,剩下的盒子隨便放
那麼有
S(n,m)=m!1k=0∑m(−1)kCmk(m−k)n
再推一下會有
=m!1k=0∑m(−1)kk!(m−k)!m!(m−k)n
=k=0∑mk!(−1)k∗(m−k)!(m−k)n
容易發現,這是一個卷積形式,組合數和次冪都可以預處理
於是可以通過FFT或者NTT求出
S(n,0),S(n,1)...
複雜度
O(nlogn)
性質
相關推薦
第一類&第二類斯特林數學習筆記
第一類斯特林數 p p p個不同人圍著
第一類斯特林數學習記錄
最近做題有時會碰到斯特林數(Stirling數),就覺得好好的學習一番,於是呢,寫下這篇部落格,來記錄一些知識 簡單介紹 第一類斯特林數表示表示將 n 個不同元素構成m個圓排列的數目。——百度百科 第一類斯特林數,可以表示為 s(n,m)
第一類斯特林數學習小記
概念 問題來源 p個不同人圍k個相同圓桌而坐,要求各桌非空,其不同方案數為第一類Stirling數S(p,k)。 問題解決 S(p,p)=1(p≥0),S(p,0)=0(p≥1) 分類
第二類斯特靈數學習筆記
簡單的介紹一下吧,斯特靈數其實有很多好玩的性質和擴充套件的。 定義 設\(S(n, m)\)表示把\(n\)個不同的球放到\(m\)個相同的盒子裡,且不允許盒子為空的方案數 稱\(S\)為第二類斯特靈數 計算方法 遞推: 考慮第\(n\)個球放到了哪裡 第一種情況是自己佔一個盒子,方案為\(S(n - 1,
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
bzoj 4555 [Tjoi2016&Heoi2016] 求和 —— 第二類斯特林數+NTT
題目:https://www.lydsy.com/JudgeOnline/problem.php?id=4555 關於第二類斯特林數:https://www.cnblogs.com/Wuweizheng/p/8638858.html 關於這道題:https://blog.csdn.net/werkeyto
bzoj 4555 [Tjoi2016&Heoi2016]求和——NTT+第二類斯特林數
題目:https://www.lydsy.com/JudgeOnline/problem.php?id=4555 第二類斯特林數展開式: \( S(i,j) = \frac{1}{j!} \sum\limits_{k=0}^{j}(-1)^{k}C_{j}^{k}(j-k)^{i} \) 大概是容斥列舉
第一類斯特林數、第二類斯特林數、貝爾數總結+模板
第一類斯特林數 解決問題:給n個元素,求出k個環排列的方法數 Stirling[n][k] 1 1 1 2 3 1 6 11 6 1
【2019雅禮集訓】【第一類斯特林數】【NTT&多項式】permutation
目錄 題意 輸入格式 輸出格式 思路: 程式碼 題意 找有多少個長度為n的排列,使得從左往右數,有a個元素比之前的所有數字都大,從右往左數,有b個元素比之後的所有數字都大。 n<=2*10^5,a,b<=n 輸入格式 輸入三個整數n,a,b。 輸出格式 輸出
第一類第二類斯特林數總結
第一類Stirling數是有正負的,其絕對值是包含n個元素的集合分作k個環排列的方法數目。 遞推公式為, S(n,0) = 0, S(1,1) = 1. S(n+1,k) = S(n,k-1) + nS(n,k)。 邊界條件: S(0 , 0) = 1 S(p ,
BZOJ 4555:[TJOI2016&HEOI2016]求和(第二類斯特林數+NTT)
pla scrip sca getc += math scan 直接 main \(Description\) 求 \[\sum_{i=0}^n\sum_{j=0}^iS(i,j)2^jj!\]對998244353取模後的結果。 \(S(i,j)\)在這裏就非常礙事,怎麽把
第一和第二類斯特林數的學習
排列 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個遊戲必須非空,有多少種放法? 分析: 第二
HDU3625(SummerTrainingDay05-N 第一類斯特林數)
php center acm lin dig memset -a equal red Examining the Rooms Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Jav
HDU4045-第二類斯特林數
clu math cnblogs mat tin ring tdi [0 ios 題意 有n臺機器,每天選擇r臺,要求任意兩臺編號差值不小於k,並且r臺機器分成不超過m組。求不重樣的選擇有多少種組合(可以選多少天)。 數據範圍$1\leqslant n,r,k,m\leqs
Examining the Rooms HDU - 3625(第一類斯特林數)
names can pre main bits ons pro div spa Examining the Rooms HDU - 3625 題意:n個房間,每個房間裏有一把鑰匙(等概率),每進到一個房間可以得到鑰匙去該鑰匙對應的房間,如果當前沒有鑰匙則可以破門而入(1
HDOJ 4372 第一類斯特林數
我們 一個 log edi upload 個數 題解 pid spa 鏈接: http://acm.split.hdu.edu.cn/showproblem.php?pid=4372 題意: 有一系列的樓房,高度從1~n,然後從左側看能看到f個樓房,右側看能看到b個樓
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個元