[恢]hdu 1028

2011-12-16 08:28:00

地址:http://acm.hdu.edu.cn/showproblem.php?pid=1028

题意:一个整数n,可以表示为多少种和的形式。

mark:dp[i][j]表示和为j且和里面最大的数字不超过i的种类数,有dp[i][j] = dp[i-1][j] + dp[i][j-i]。

代码:

# include <stdio.h>


int dp[130][130] ;


int main ()
{
int i, j, n ;
dp[0][0] = 1 ;
for (i = 1 ; i <= 120 ; i++)
{
for (j = 0 ; j < i ; j++) dp[i][j] = dp[i-1][j] ;
for (j = i ; j <= 120 ; j++)
dp[i][j] = dp[i-1][j] + dp[i][j-i] ;
}
while (~scanf ("%d", &n))
{
printf ("%d\n", dp[n][n]) ;
}
return 0 ;
}



posted @ 2012-01-06 17:24  Seraph2012  阅读(164)  评论(0编辑  收藏  举报