動態規劃-ZOJ 1 163 THE STAIRCASES

許佳佳233發表於2016-06-22

題目:

這裡寫圖片描述

分析:

這裡寫圖片描述

這裡寫圖片描述

程式碼:

#include<stdio.h>
#include<string.h>

int main()
{
    long long f[501][501];//f[i, j]表示i塊積木堆成最高一排不超過j塊積木的方案數

    memset(f, 0, sizeof(f));
    for(int i=0; i<501; i++)
        f[0][i] = 1;    //f[3, 3]=f[3 ,2]+f[0, 2],f[0,2]就表示由3塊磚豎起來的這種情況

    for (int i = 1; i < 501; i++)    //公式遞推
        for (int j = 1; j < 501; j++)
            if(i>=j)
                f[i][j] = f[i][j - 1] + f[i - j][j - 1];
            else
                f[i][j] = f[i][j - 1];

    int n;
    while (scanf("%d", &n), n)
        printf("%lld\n", f[n][n] - 1);
    return 0;
}

相關文章