码迷,mamicode.com
首页 > 其他好文 > 详细

hdu1114Piggy-Bank(完全背包)

时间:2015-02-05 20:14:24      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:

key:要取满,所以big[0] = 0;其他的都初始化为无穷~

#include <iostream>
#include <stdio.h>
#include <string.h>
const int maxn = 1e4 + 5;
const int INF = 1e7;
int big[maxn];
using namespace std;

int main()
{
    int t;
    int e, f;
    int n;
    int p[500 + 5], w[500 + 5];
    scanf("%d", &t);
    while(t--){
        scanf("%d%d", &e, &f);
        scanf("%d", &n);
        for(int i = 1; i <= maxn; i++){
            big[i] = INF;
        }
        big[0] = 0;
        for(int i = 1; i <= n; i ++){
            scanf("%d%d", &p[i], &w[i]);
        }
        for(int i = 1; i <= n; i++){
            for(int j = w[i]; j <= f - e; j++)
                if(big[j - w[i]] != INF)
                    big[j] = min(big[j], big[j - w[i]] + p[i]);
        }
        if(big[f - e] != INF)
            printf("The minimum amount of money in the piggy-bank is %d.\n", big[f - e]);
        else
            printf("This is impossible.\n");
    }
    return 0;
}

 

hdu1114Piggy-Bank(完全背包)

标签:

原文地址:http://www.cnblogs.com/Joe962850924/p/4275489.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!