HDU 1028 简单动态规划

Posted Energy_girl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDU 1028 简单动态规划相关的知识,希望对你有一定的参考价值。

"Well, it seems the first problem is too easy. I will let you know how foolish you are later." feng5166 says.

"The second problem is, given an positive integer N, we define an equation like this:
  N=a[1]+a[2]+a[3]+...+a[m];
  a[i]>0,1<=m<=N;
My question is how many different equations you can find for a given N.
For example, assume N is 4, we can find:
  4 = 4;
  4 = 3 + 1;
  4 = 2 + 2;
  4 = 2 + 1 + 1;
  4 = 1 + 1 + 1 + 1;
so the result is 5 when N is 4. Note that "4 = 3 + 1" and "4 = 1 + 3" is the same in this problem. Now, you do it!"

Input

The input contains several test cases. Each test case contains a positive integer N(1<=N<=120) which is mentioned above. The input is terminated by the end of file.

Output

For each test case, you have to output a line contains an integer P which indicate the different equations you have found.

Sample Input

4
10
20

Sample Output

5
42
627
分治或者动态规划吧
给定一个正整数n,求它有多少种正整数和a1、a2……的组合形式。
m为这些正整数中最大的,有如下方程
f(n,m) = 1---------------n=1/m=1
f(n-m,m)+f(n,m-1)--m<=n
f(n,n)-------------m>n
1------------------n=0
 1 #include <cstdio>
 2 #include <cstring>
 3 #include <iostream>
 4 #include <algorithm>
 5 #include <vector>
 6 #include <queue>
 7 #include <set>
 8 #include <map>
 9 #include <string>
10 #include <cmath>
11 #include <stdlib.h>
12 #define MAXSIZE 125
13 using namespace std;
14 
15 int n;
16 int f[MAXSIZE][MAXSIZE];
17 int main()
18 {
19     //freopen("caicai.txt","r",stdin);
20     int i,j;
21     for(i = 1;i<MAXSIZE;i++)
22     {
23         f[i][1] = 1;
24         f[1][i] = 1;
25         f[0][i] = 1;//下文可能出现i-j=0
26     }
27     for(i = 2;i<MAXSIZE;i++)
28         for(j = 2;j<MAXSIZE;j++)
29         {
30             if(i>=j)
31                 f[i][j] = f[i-j][j]+f[i][j-1];
32             else
33                 f[i][j] = f[i][i];
34         }
35     while(scanf("%d",&n)!=EOF)
36     {
37         cout<<f[n][n]<<endl;
38     }
39     return 0;
40 }
View Code

 

以上是关于HDU 1028 简单动态规划的主要内容,如果未能解决你的问题,请参考以下文章

HDU 1028 Ignatius and the Princess III dp

hdu 4504(动态规划)

动态规划XMU 1028 Game Boy Advance

命运(HDU 2571 简单动态规划)

HDU 2041 超级楼梯 简单动态规划

HDU 2084 数塔 简单动态规划