和分解(DP)


問題

 

和分解

 

當加0 NK個整數時,請編寫和爲N時的情況有多少種的程序。 (加法的順序變換時,看作不同的情況(1+2 2+1時爲不同的情況。),還有一個數可以使用多次)

輸入

第一行給出,兩個整數N(1≤N≤200), K(1≤K≤200)

輸出

第一行輸出,答案除以1,000,000,000的餘數。

輸入案例

20 2

輸出案例

21

 

#include <stdio.h>
#define M 1000000000
int n,K,d[202][202];
int main(){
    int i,j,k;
    scanf("%d %d",&n,&K);
    d[0][0]=1;
    for (i=1;i<=K;i++)
        for (j=0;j<=n;j++)
            for (k=0;k<=j;k++)
                d[i][j]+=d[i-1][j-k],d[i][j]%=M;
    printf("%d",d[K][n]);
    return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章