zoukankan      html  css  js  c++  java
  • hoj1090The Staircases

    做完整数划分那题后,现在感觉这道题很简单,状态转移方程为

    dp[i][j] = dp[i][i]      j>i

           = dp[i-j][j-1]+dp[i][j-1]

    建议看看我的博客上的hoj1402题

     

    #include <iostream>

    #include <cstring>

    using namespace std;

    #define X 510

    long long dp[X][X],n;

    void init()

    {

       memset(dp,0,sizeof(dp));

       for(int i=1;i<X;i++)  //初始化

       {

          dp[1][i] = 1;

          dp[0][i] = 1;

       }

       for(int i=2;i<X;i++)  //状态转移方程

          for(int j=1;j<X;j++)

             if(i<j)

                dp[i][j] = dp[i][i];

             else

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

    }

    int main()

    {

       freopen("sum.in","r",stdin);

       freopen("sum.out","w",stdout);

       init();

       while(cin>>n,n)

          cout<<dp[n][n]-1<<endl;

       return 0;

    }

  • 相关阅读:
    Elasticsearch 缓存总结
    ElasticSearch-集群
    HTTP协议详解
    HTTPS总结
    ElasticSearch--Document
    正排索引和倒排索引
    线上OOM排查步骤总结
    线程池-四种拒绝策略总结
    netty篇-练手
    netty篇-UDP广播
  • 原文地址:https://www.cnblogs.com/yejinru/p/2394495.html
Copyright © 2011-2022 走看看