整數劃分(劃分dp)總結

2021-10-23 07:45:46 字數 1507 閱讀 4439

寫了幾個題發現整數劃分是一類題,而不是一道題。

具體題型:

1、n相同元素放入m個相同的盤子 盤子允許為空  例題:放蘋果 poj - 1664設dp[i][j]為  j 個元素放入i個盤子轉移方程:dp[i][j]+=dp[i-1][j]  新新增乙個盤子,盤子為空

dp[i][j]+=dp[i][j-i] i個盤子 各取出乙個

2、n個相同的元素放入m個不同的盤子,盤子允許為空

隔板法

新加m個元素使得盤子不能為空

演變為n+m個元素分成m個不同的盤子  盤子不允許為空

答案:c(n+m,m-1)

3、n個相同的元素放入m個相同的盤子,盤子不允許為空

設dp[i][j]為  j 個元素放入i個盤子

轉移方程:

dp[i][j]+=dp[i-1][j-1]  新新增乙個盤子,盤子放乙個

dp[i][j]+=dp[i][j-i] i個盤子 各取出乙個

4、n個不同的元素放入m個相同的盤子,盤子不允許為空 組內無序

斯特林數

設dp[i][j]為  j 個元素放入i個盤子

轉移方程:

dp[i][j]+=dp[i-1][j-1]  不允許為空

dp[i][j]+=dp[i][j-1]*i   新新增乙個元素,由於元素是不同的,所以可以放i個盤子任何乙個都可以。

這個可以用斯特林數求法優化:部落格

不過這張圖分析的怎麼柑橘允許有空的盤子呢?

5、n個不同的元素放入m個不同的盤子,盤子不允許為空 組內無序

還是斯特林數,上面那個公式除了乙個m 的階乘就是使得m是相同的,這題就不要除m的階乘就好了

6....待新增

整數劃分問題 DP

整數劃分的定義 n m1 m2 mi 其中mi為正整數,並且1 mi n 則為n的乙個劃分。如果中的最大值不超過m,即max m1,m2,mi m,則稱它屬於n的乙個m劃分。這裡我們記n的m劃分的個數為f n,m 舉個例子,當n 5時我們可以獲得以下這幾種劃分 注意,例子中m 5 5 5 4 1 3...

整數劃分 劃分數(DP動態規劃)

給你乙個正整數n,讓你計算出n的m劃分有幾種方法。思路 定義dp i j 為i的j劃分,即將i劃分為j個數字之和的方案數。1 當j i時,此時,劃分個數不超過i,此時是正常的劃分。劃分的結果一定只有兩種型別 一種是j個數字,都大於0。另一種是有0,即不夠劃分j個,用0來湊的。j個數字中存在0的,其實...

整數劃分(小結劃分數如何dp)

原 小結劃分數如何dp 1.hdu 1028 整數劃分 首先,我們引進乙個小小概念來方便描述吧,dp n m 是把自然數劃劃分成所有元素不大於m的分法,例如 當n 4,m 1時,要求所有的元素都比m小,所以劃分法只有1種 當n 4,m 2時,只有3種,當n 4,m 3時,只有4種,當n 4,m 5時...