题意
有5种硬币,分别价值1,5,10,25,50;
问取的硬币总价值为n有几种取法;
思路
常规的完全背包问题
代码
#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<string.h>
int cost[5]= {1,5,10,25,50};
int dp[100000];
int main()
{
//预处理出所有结果
memset(dp,0,sizeof dp);
dp[0]=1;
for(int i=0; i<5; i++)
for(int j=0; j<=7489-cost[i]; j++)
dp[j+cost[i]]+=dp[j];
int n;
while(~scanf("%d",&n))
printf("%d\n",dp[n]);
return 0;
}