Vijos P1117數的劃分

2021-07-17 04:50:33 字數 703 閱讀 1534



將整數n分成k份,且每份不能為空,任意兩份不能相同(不考慮順序)。

例如:n=7,k=3,下面三種分法被認為是相同的。

1,1,5; 1,5,1; 5,1,1;

問有多少種不同的分法。

輸入n,k (6乙個整數,即不同的分法。

7 3樣例輸出1

每個測試點1s

noip2001第二題

題解用f[i][j]表示將數i分成j份,則樣例可以表示成求f[7][3]

觀察上面的前三種方案

第乙個數都是1,後兩位數的和都是6,也就是將1單獨作為乙份,剩下的i-1則分成j-1份,這樣的方案數為f[i-1][j-1]

最後一種方案如果將每一位減1,則為1 1 2,也就是f[i-j][j]

綜合起來,則有狀態轉移方程:f[i][j]=f[i-1][j-1]+f[i-j][j];

**#include using namespace std;

int n,k,f[205][10];

int main()

{ cin>>n>>k;

for(int i=1;i<=n;i++)

f[i][1]=1;

for(int i=2;i<=n;i++)

for(int j=2;j<=min(k,i);j++)

f[i][j]=f[i-1][j-1]+f[i-j][j];

cout<

P1117數的劃分

將整數n分成k份,且每份不能為空,任意兩份不能相同 不考慮順序 例如 n 7,k 3,下面三種分法被認為是相同的。1,1,5 1,5,1 5,1,1 問有多少種不同的分法。輸入n,k 6乙個整數,即不同的分法。7 3 4每個測試點1s noip2001第二題 dp。把i個球放在k個盒子裡,就是i 1...

A 數的劃分

a 數的劃分 將整數n 分成 k份,且每份不能為空,任意兩個方案不相同 不考慮順序 例如 n 7,k 3,下面三種分法被認為是相同的。1,1,5 1,5,1 5,1,1 問有多少種不同的分法。輸入格式 第一行有兩個整數 n,k 6sample input 7 3 sample output 解題思路...

wikioi 數的劃分

題目描述 description 將整數n分成k份,且每份不能為空,任意兩種劃分方案不能相同 不考慮順序 例如 n 7,k 3,下面三種劃分方案被認為是相同的。1 1 5 1 5 1 5 1 1 問有多少種不同的分法。輸入描述 input description 輸入 n,k 6 題解 f i,j ...