PKU POJ 1671 Rhyme Schemes DP

基础DP,从长度为i-1的方案数得到长度为i的方案数,dp[i][j]长度为i有j种字母组成的方案数。

#include <iostream>
using namespace std;
double dp[1000][1000];
void init()
{
    int i,j;
    dp[1][1]=1;
    for (i=2;i<1000;++i)
    {
        dp[i][i]=dp[i][1]=1;
        for (j=2;j<i;++j)
            dp[i][j]=dp[i-1][j-1]+dp[i-1][j]*j;
    }
}
int main()
{
    int n,i;
    double res;
    init();
    while (scanf("%d",&n)!=EOF&&n)
    {
        for (i=1,res=0;i<=n;++i)
            res+=dp[n][i];
        printf("%d %.0lf\n",n,res);
    }
    return 0;
}

 

posted on 2013-03-08 17:43  Deller  阅读(147)  评论(0)    收藏  举报

导航