常用小方法整理3

2021-07-31 11:31:49 字數 2117 閱讀 6403

錯排公式

n各有序的元素應有n!種不同的排列。如若乙個排列式的所有的元素都不在原來的位置上,則稱這個排列為錯排。

核心遞推公式:

d(n) = (n-1) [d(n-2) + d(n-1)]

特殊地,d(1) = 0, d(2) = 1.

尤拉迴路的判定

一.無向圖

乙個無向圖存在尤拉路徑,當且僅當 該圖所有頂點的度數為偶數或者除了兩個度數為奇數外其餘的全是偶數。(這裡的入度與出度都是+1)

二.有向圖

乙個有向圖存在尤拉路徑,當且僅當 該圖所有頂點的度數為零或者乙個頂點的度數為1,另乙個度數為-1,其他頂點的度數為0。(這裡的入度+1,出度-1)

三.混合圖尤拉路徑

首先,用上文所說的方法判斷該圖是否存在尤拉迴路,如果存在,尤拉路徑一定存在。如果尤拉迴路不存在,那麼我們列舉尤拉路徑的起點和終點,連線一條無向邊,然後再用最大流判斷是否存在尤拉迴路即可。

第二類stirling數

定理:第二類stirling數s(p,k)計數的是把p元素集合劃分到k個不可區分的盒子裡且沒有空盒子的劃分個數。

證明:元素在拿些盒子並不重要,唯一重要的是各個盒子裡裝的是什麼,而不管哪個盒子裝了什麼。

遞推公式有:s(p,p)=1 (p>=0) s(p,0)=0 (p>=1) s(p,k)=k*s(p-1,k)+s(p-1,k-1) (1<=k<=p-1) 。考慮將前p個正整數,1,2,.....p的集合作為要被劃分的集合,把

分到k個非空且不可區分的盒子的劃分有兩種情況:

(1)那些使得p自己單獨在乙個盒子的劃分,存在有s(p-1,k-1)種劃分個數

(2)那些使得p不單獨自己在乙個盒子的劃分,存在有 k*s(p-1,k)種劃分個數

考慮第二種情況,p不單獨自己在乙個盒子,也就是p和其他元素在乙個集合裡面,也就是說在沒有放p之前,有p-1個元素已經分到了k個非空且不可區分的盒子裡面(劃

分個數為s(p-1,k),那麼現在問題是把p放在哪個盒子裡面呢,有k種選擇,所以存在有k*s(p-1,k)。

long long s[maxn][maxn];//存放要求的stirling數

const long long mod=1e9+7;//取模

void init()//預處理

}

擴充套件:k! *s(p,k) 計數的是把p元素集合劃分到k個可區分的盒子裡且沒有空盒子的劃分個數。

bell數

定理:bell數b(p)是將p元素集合分到非空且不可區分盒子的劃分個數(沒有說分到幾個盒子裡面)。

b(p)=s(p,0)+s(p,1)+.....+s(p,k)

所以要求bell數就要先求出第二類stiring數。

第一類stirling數

定理:第一類stirling數s(p,k)計數的是把p個物件排成k個非空迴圈排列的方法數。

證明:把上述定理敘述中的迴圈排列叫做圓圈。遞推公式為:

s(p,p)=1 (p>=0) 有p個人和p個圓圈,每個圓圈就只有乙個人

s(p,0)=0 (p>=1) 如果至少有1個人,那麼任何的安排都至少包含乙個圓圈

s(p,k)=(p-1)*s(p-1,k)+s(p-1,k-1)

設人被標上1,2,.....p。將這p個人排成k個圓圈有兩種情況。第一種排法是在乙個圓圈裡只有標號為p的人自己,排法有s(p-1,k-1)個。第二種排法中,p至少和另乙個人在一

個圓圈裡。這些排法可以通過把1,2....p-1排成k個圓圈再把p放在1,2....p-1任何一人的左邊得到,因此第二種型別的排法共有(p-1)*s(p-1,k)種排法。

在證明中我們所做的就是把劃分到k個非空且不可區分的盒子,然後將每個盒子中的元素排成乙個迴圈排列。

long long s[maxn][maxn];//存放要求的第一類stirling數

const long long mod=1e9+7;//取模

void init()//預處理

}

常用小方法

region 將字串轉換為陣列 public static string getstrarray string str endregion region 刪除最後結尾的乙個逗號 刪除最後結尾的乙個逗號 public static string dellastcomma string str endr...

常用小方法 續

region 擷取字元長度 擷取字元長度 字元 長度 public static string cutstring string inputstring,int len else trycatch if templen len break 如果截過則加上半個省略號 byte mybyte syste...

常用小方法 後續

region html 轉換成txt格式 字串字元處理 等待處理的字串 處理後的字串 把html 轉換成txt格式 public static string totxt string input endregion region 檢查危險字元 檢查危險字元 public static string ...