數的劃分問題 DP

2021-07-03 03:17:14 字數 482 閱讀 5512

問題:

把乙個整數n分成k份,每份都不為0,有幾種分法?

分析:情況分為兩類

一、每份中不包含1的方法,為保證每份》=2,先拿出k個1到每乙份,然後把剩下的n-k分為k份,分法有dp[n-k][k]

二、至少有乙份包含1,拿出1個當為乙份。剩下的n-1個分為k-1份,分法有dp[n-1][k-1].

**:

#include 

#include

#include

#include

#include

#include

using

namespace

std;

int n, k;

int dp[222][10];

int main()

}cout

<< dp[n][k] << endl;

}return

0;}

數的劃分 DP

link 解題思路設fi,jf fi,j 為i ii個數分成j jj份的合法方案數 當我們枚到i ii時劃分方法有兩種 第i ii個數單獨成為大小為1的乙份,所以方案數為fi 1,j 1f fi 1,j 1 因為求得是組合,不可以重複方案,我們可以從fi j,jf fi j,j 轉移過來,把i j ...

數的劃分 搜尋 ,DP

time limit 1 sec memory limit 128 mb 64bit io format lld submitted 44 accepted 22 submit status web board 將整數n分成k份,且每份不能為空,任意兩份不能相同 不考慮順序 例如 n 7,k 3,下...

數的劃分問題總結 DP或遞迴

問題 1531 藍橋杯 演算法提高vip 數的劃分 時間限制 1sec 記憶體限制 128mb 提交 438 解決 175 題目描述 乙個正整數可以劃分為多個正整數的和,比如n 3時 3 1 2 1 1 1 共有三種劃分方法。給出乙個正整數,問有多少種劃分方法。資料規模和約定 n 100 輸入乙個正...