hdoj 1028 Ignatius and the Princess III 整数拆分 递推

原创 2012年03月26日 12:40:49

整数拆分:给它计数最简单的方法是定义函数f(n, k),代表n的整数拆分中,最大项不超过k的方案数。对于任意满足条件的拆分,最大项要么达到这个限制,要么小于它,因此f(n, k) = f(n-k, k) + f(n, k - 1)。边界条件:f(n, 1) = 1, f(0, 0) = 1, f(1, 1) = 1, 另外,f(n, k) = f(n, n),如果k大于n的话。

#include <iostream>
#include <cstdio>
#include <cstring>

using namespace std;

const int MAX = 129;
long long f[MAX][MAX];

void init()
{
    int i, j, k;
    f[0][0] = 1;
    for (i = 1; i < MAX; ++i)
        f[i][1] = 1;
    for (i = 2; i < MAX; ++i)
        for (j = 2; j <= i; ++j) {
            if (j > i - j)
                k = i-j;
            else
                k = j;
            f[i][j] = f[i - j][k] + f[i][j-1];
        }
}

int main()
{
    init();
    int n;
    while (scanf("%d", &n) != EOF) {
        printf("%lld\n", f[n][n]);
    }
    return 0;
}



版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

hdoj1028

#include #define MAX 120 main(){ int n; int count[MAX+1][MAX+1]; int i,j,k; int min; cou...

hdoj 1028

题目大意:求出将给定数字分成若干正整数的不同方法个数 题目分析:该题可等价转化为硬币转化问题:有各种正整数面值的硬币,求出给定钱数的不同组合方式的个数,定义dp(x,y)为能组成x元的,且最大面值为...

HDOJ 1028 Ignatius and the Princess III

链接:http://acm.hdu.edu.cn/showproblem.php?pid=1028 题目: Ignatius and the Princess III Time Limi...

hdu 1028 Ignatius and the Princess III(整数拆分,母函数或dp)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1028 题意:整数拆分,拆分成正整数的和的方案数。 解题方案:母函数或dp。 方法一:母函数。与上一篇博...

HDU 1028-Ignatius and the Princess III(拆分整数-母函数-无限次)

Ignatius and the Princess III Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K...

Hdu 1028 Ignatius and the Princess III(整数拆分问题,DP)

Ignatius and the Princess III Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K ...

HDU1028 Ignatius and the Princess III(整数拆分:母函数||DP)

题意: 给出一个值n,问有几种不同的拆分方法。 要点: 可以用母函数或DP来做,这里说一下母函数,基本思路是:写成(1+x^2+x^3+x^4……x^n)*(1+x^2+x^4+……)*(1+x^3+...

HDU 1028-Ignatius and the Princess III-母函数-整数拆分

问题及代码: Ignatius and the Princess III Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/...

HDU 1028 Ignatius and the Princess III【整数拆分】

#include using namespace std; #define MAX 120 int main(){     int i,j,k,n; int c[MAX+1],tc[MAX...

hdoj1028 Ignatius and the Princess III(整数分解)

Ignatius and the Princess III Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)