题意:已知一个猪仔储钱罐空载时的质量和满载时的质量,给出猪仔储钱罐中有可能出现的硬币种类,每种硬币都有自身的质量和价值,问当一个猪仔储钱罐满载时内面最少有的硬币的总价值。
解题思路:这是一个完全背包问题,因为硬币是可以无限装,那么所求的是最小值,就把初始状态都设为无限大,只有0状态为0,然后只有现态不为无穷大的时候,才就去找次态与现态+1的最小值,然后就是模板的事了。

#include
#include
#include
#include
using namespace std;
int n,w[505], m,c[505],dp[10005];
int main()
{
int sum,t,i,j;
scanf("%d",&t);
while(t--)
{
scanf("%d %d",&m,&sum);
sum=sum-m;
for(i=1;i<=sum;i++)
dp[i]=25000010;
dp[0]=0;
scanf("%d",&n);
for(i=0;i25000000)
printf("This is impossible.\n");
else
printf("The minimum amount of money in the piggy-bank is %d.\n",dp[sum]);
}
return 0;
}