Piggy-Bank HDU

来源:互联网 发布:linux arp -n 编辑:程序博客网 时间:2024/06/04 01:15

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

完全背包,每个物品都有无限个,可以进行多次的取用

#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <map>#define inf 999999using namespace std;int main (){    int pi[12000];    int wi[12000];    int dp[12000];    int n,m,t;    scanf("%d",&t);    while (t--)    {        scanf("%d %d",&n,&m);        for(int i=0; i<m;i++)        {            dp[i]=999999;        }        int ans=m-n;        int x;        scanf("%d",&x);        for(int i=0; i<x; i++)            scanf("%d %d",&pi[i], &wi[i]);        dp[0]=0;        for(int i=0; i<x; i++)        {            for(int j=wi[i]; j<=ans; j++)            {                dp[j]=min(dp[j],dp[j-wi[i]]+pi[i]);            }        }        if(dp[ans]==999999) printf("This is impossible.\n");        else  printf("The minimum amount of money in the piggy-bank is %d.\n",dp[ans]);    }}


原创粉丝点击