zoukankan      html  css  js  c++  java
  • 放苹果

    状态表示:

    (f(i,j))(i)(j)划分总数。

    状态转移:

    考虑(n)(m)划分(a_i(sum_{i = 1}^ma_i=n)):

    1. 如果对于每个(i)都有(a_i > 0),那么({a_i-1})就对应了(n-m)(m)划分。

    2. 如果存在(a_i=0),这就对应了(n)(m-1)划分。

    [f(i,j) = egin{cases} f(i,j-1)+f(i-j,j) & i ge j \ f(i,j-1) & i < j \ end{cases} ]

    如果(i<j),那么(i)(j)划分必存在(a_i=0)

    边界:

    [f(0,0 sim m)=1 ]

    const int N = 1010;
    int f[N][N];
    int n,m;
    
    int main()
    {
    
        while(cin >> n >> m)
        {
            for(int i = 0; i <= m; i++) f[0][i] = 1;
            
            for(int i = 1; i <= n; i++)
                for(int j = 1; j <= m; j++)
                {
                    if(i >= j) f[i][j] = f[i][j - 1] + f[i - j][j];
                    else f[i][j] = f[i][j-1];
                }
                
            cout << f[n][m] << endl;
        }
        //system("pause");
        return 0;
    }
    
    
  • 相关阅读:
    Redis内存回收策略
    7、IMS
    6、端局、汇接局、关口局、长途局
    5、IMS网元
    4、IMS
    3、NAT
    2、SIP
    1、B2BUA
    九、数据库——sql server 2008导入excel
    六十三、android pad
  • 原文地址:https://www.cnblogs.com/fxh0707/p/14920056.html
Copyright © 2011-2022 走看看