HDU 2069 动态规划

来源:互联网 发布:linux服务器虚拟化方案 编辑:程序博客网 时间:2024/05/18 12:32

状态转移方程 dp[ j ][ k ] = dp[ j-1 ][ k-money[i] ] + dp[ j ] [ k ];

注意 dp[0][0]处赋值为1.

#include<stdio.h>#include<string.h>int dp[101][300];int money[6]={0,1,5,10,25,50};int n;void work(){int i,k,j;memset(dp,0,sizeof(dp));dp[0][0]=1;for(i=1;i<=5;i++){for(j=1;j<=100;j++){for(k=money[i];k<=250;k++)dp[j][k] += dp[j-1][k-money[i]];}}}int main(){int sum,i;work();while(scanf("%d",&n)&&n){sum = 0;for(i=0;i<=100;i++){sum += dp[i][n];}printf("%d\n",sum);}return 0;}



原创粉丝点击