[恢]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 ;
}