stirling數可以指兩類數,
第一類數是有正負的,其絕對值是包含n個元素的集合分作k個環排列的方法數目;
第二類數是把包含n個元素的集合劃分為正好k個非空子集的方法的數目。
下面分別介紹這兩類stirling數的遞推公式。
第一類。
s(n,0)=0
s(1,1)=1
s(n+1,k)=s(n,k-1)+n*s(n,k)
第二類。
s(n,k)=0,其中n
s(n,n)=s(n,1)
=1s(n,k)=s(n-1,k-1)+k*s(n-1,k)
①傳送門: 山東省第五屆acm大學生程式設計競賽-hearthstone ii
②將n個不同的球放入k個相同的盒子中,有多少種方案?
這就是第二類stirling數。
for(i=2; i<=n; i++)
for(j=1; j<=i; j++)
s[i][j]=s[i-1][j-1]+j*s[i-1][j];
long long ans=s[n][k];
遞推公式:
s[n][0]=0;
s[n][1]=1;k=1
s[n][n]=1;
s[n][k]=0;k>n
s(n,k)=s(n-1,k-1)+k*s(n-1,k)
思路:有兩種方法,設這n個不同的球編號為n1~nn
①nn單獨放在乙個盒子中,那麼剩下的n1~nn-1個球只能放在剩下的(k-1)個盒子中,方案數為s(n-1,k-1)
;②nn不單獨放在乙個盒子中,那麼可以先將n1~nn-1個球
放在k個盒子中,nn放入其中任意乙個盒子中,方案數為k*s(n-1,k)
。
陣列(組合數學)
fabdec 有 個長度為 n 的陣列 a 下標 1 n 初始時都是 0。fabdec 隨機了 個 1 到 n 的隨機數 x,並且把 a x fabdec 重複了 m 次這樣的操作,然後數了 下陣列 共有 k 個位置 為奇數。fabdec 現在想問執 m 次操作,總共能 成多少種不同的陣列使得恰 好...
組合數學 求組合數
對於求組合數,要根據所給資料範圍來選擇合適的演算法 這道題中所給的資料範圍適合用打表的方法直接暴力求解 先用4e6的複雜度預處理出所有的情況,再用1e4的複雜度完成詢問即可 include using namespace std const int n 2010 const int mod 1e9 ...
計數 組合數學總結
本文持續更新 對計數,組合數學dp作總結,給出思路,狀態轉移方程,略去 狀態初始值等。1 劃分數 1 m個不可區分的物品分成n份,每份的數量大於等於0,求劃分的方法數。思路 1 若m n,則等價於m個物品劃分為m份。2 否則,若至少存在1份數量為0,則相當於m個物品劃分為n 1份 若每份數量大於等於...