poj 1384 Piggy-Bank(完全背包)

来源:互联网 发布:域名备案的好处 编辑:程序博客网 时间:2024/04/29 21:59

题意是给你空的小猪储存罐重量,和满的重量,然后给出各种硬币的价值和对应的重量,要你估计出满的储蓄罐里面硬币价值和最小为多少。


完全背包问题。直接用模板就行了。


代码:

#include<stdio.h>const int INF = 0x3f3f3f3f;const int MaxN = 501;const int MaxV = 10001;int P[MaxN];//价值int W[MaxN];//重量int dp[MaxV];int min(int a, int b){    return a<b?a:b;}int main(){    int T;    int E, F;    int N;    scanf("%d", &T);    while(T--)    {        scanf("%d%d", &E, &F);        F -= E;        scanf("%d", &N);        for(int i = 1; i <= N; i++)        {            scanf("%d%d", &P[i], &W[i]);        }        for(int i = 1; i <= F; i++)        {            dp[i] = INF;        }        dp[0] = 0;        for(int i = 1; i <= N; i++)        {            for(int j = W[i]; j <= F; j++)            {                dp[j] = min(dp[j], dp[j - W[i]] + P[i]);            }        }        if(dp[F] == INF)            printf("This is impossible.\n");        else            printf("The minimum amount of money in the piggy-bank is %d.\n", dp[F]);    }    return 0;}


0 0