【模板】第二类斯特林数Stirling
生活随笔
收集整理的這篇文章主要介紹了
【模板】第二类斯特林数Stirling
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
第二類Stirling數實際上是集合的一個拆分,表示將n個不同的元素拆分成m個集合的方案數,記為 或者 。
第二類Stirling數的推導和第一類Stirling數類似,可以從定義出發考慮第n+1個元素的情況,假設要把n+1個元素分成m個集合則分析如下:
(1)如果n個元素構成了m-1個集合,那么第n+1個元素單獨構成一個集合。方案數 。
(2)如果n個元素已經構成了m個集合,將第n+1個元素插入到任意一個集合。方案數 m*S(n,m) 。
綜合兩種情況得:
遞推式:dp[i][j] = dp[i-1][j-1]+j*dp[i-1][j];
模板代碼:
dp[0][0] = 1; for(int i = 1;i <= n; i++){ for(int j = 1;j <= i; j++){ dp[i][j] = dp[i-1][j-1]+j*dp[i-1][j]; } }總結
以上是生活随笔為你收集整理的【模板】第二类斯特林数Stirling的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【算法】划分数 动态规划
- 下一篇: 新疆大学(新大)OJ xju 1010: