Piggy-Bank完全背包

来源:互联网 发布:c语言中str什么意思 编辑:程序博客网 时间:2024/04/20 04:41


http://acm.hdu.edu.cn/showproblem.php?pid=1114

#include<stdio.h>
#include<string.h>
int dp[10010];
struct piggy_bank
{
 int value;
 int weight;
}s[600];
int main()
{
 int t,e,f,n,i,j,sub;
 scanf("%d",&t);
 while(t--)
 {
  scanf("%d%d",&e,&f);
  sub=f-e;
  scanf("%d",&n);
  for(i=0;i<n;i++)
   scanf("%d%d",&s[i].value,&s[i].weight);
  dp[0]=0;
  for(j=1;j<=sub;j++)
   dp[j]=99999999;
  for(i=0;i<n;i++)
  {
   for(j=s[i].weight;j<=sub;j++)
    if(dp[j-s[i].weight]+s[i].value<dp[j])
     dp[j]=dp[j-s[i].weight]+s[i].value;
  }
  if(dp[sub]==99999999)
   printf("This is impossible.\n");
  else
   printf("The minimum amount of money in the piggy-bank is %d.\n",dp[sub]);
 }
 return 0;
}

0 0
原创粉丝点击