DP NYOJ 176 整數劃分 二

2021-07-24 03:57:32 字數 666 閱讀 5764

整數劃分(二)(dp)

解決問題:

把乙個正整數m分成n個正整數的和,有多少種分法?

解決方法:

dp[i][j]代表: m為i,並分成j個正整數的和時的分法。

初始化: dp[i][1] = 1。

遞推式:

dp[i][j] = dp[i-1][j-1] (有1的情況) + dp[i-j][j] (沒有1的情況)

#include 

#include

#include

#include

#include

#include

using

namespace

std;

const

int n = 105;

typedef

long

long ll;

const

int inf=0x3f3f3f3f;

int n,m;

int dp[n][n]; //dp[i][j]代表數字為i,分成j個正整數時的方法數

void slove()

printf("%d\n",dp[n][m]);

}int main()

return

0;}

NYOJ 176 整數劃分(二)

整數劃分 二 時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述把乙個正整數m分成n個正整數的和,有多少種分法?例 把5分成3個正正數的和,有兩種分法 1 1 3 1 2 2 輸入第一行是乙個整數t表示共有t組測試資料 t 50 每組測試資料都是兩個正整數m,n,其中 1 n m...

nyoj 176 整數劃分(二)

時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述輸入 第一行是乙個整數t表示共有t組測試資料 t 50 每組測試資料都是兩個正整數m,n,其中 1 n m 100 分別表示要拆分的正數和拆分的正整數的個數。輸出輸出拆分的方法的數目。樣例輸入 2 5 25 3 樣例輸出 2 2 ...

NYOJ 176 整數劃分(二) (dp)

時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 把乙個正整數m分成n個正整數的和,有多少種分法?例 把5分成3個正正數的和,有兩種分法 1 1 3 1 2 2 輸入 第一行是乙個整數t表示共有t組測試資料 t 50 每組測試資料都是兩個正整數m,n,其中 1 n m 100 ...