hduPiggy-Bank(完全背包)

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

此题就是最简单的完全背包,顺序!!!

for i=1..N

for v=0..V

f[v]=max{f[v],f[v-cost]+weight}

#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define N 1000001
int dp[10005];
int main()
{
    int T,E,V,n;
    int w[502],v[502];
    scanf("%d",&T);
    while(T--)
    {
       scanf("%d%d",&E,&V);
       V=V-E;
       scanf("%d",&n);
       for(int i=1;i<=n;i++)
       {
           scanf("%d%d",&v[i],&w[i]);
       }
       for(int i=0;i<=V;i++)
         dp[i]=N;
         dp[0]=0;
       for(int i=1;i<=n;i++)
       {
           for(int j=w[i];j<=V;j++)
           {
               if(dp[j-w[i]]+v[i]<dp[j])
                  dp[j]=dp[j-w[i]]+v[i];
           }
       }
       if(dp[V]==N) printf("This is impossible.\n");
       else printf("The minimum amount of money in the piggy-bank is %d.\n",dp[V]);
    }
    return 0;
}

hduPiggy-Bank(完全背包)

时间: 2024-12-07 06:24:44

hduPiggy-Bank(完全背包)的相关文章

BZOJ 1531: [POI2005]Bank notes( 背包 )

多重背包... ---------------------------------------------------------------------------- #include<bits/stdc++.h> #define rep(i, n) for(int i = 0; i < n; i++) #define clr(x, c) memset(x, c, sizeof(x)) using namespace std; const int maxn = 209, maxk =

【bzoj1531】[POI2005]Bank notes 多重背包dp

题目描述 Byteotian Bit Bank (BBB) 拥有一套先进的货币系统,这个系统一共有n种面值的硬币,面值分别为b1, b2,..., bn. 但是每种硬币有数量限制,现在我们想要凑出面值k求最少要用多少个硬币. 输入 第一行一个数 n, 1 <= n <= 200. 接下来一行 n 个整数b1, b2,..., bn, 1 <= b1 < b2 < ... < b n <= 20 000, 第三行 n 个整数c1, c2,..., cn, 1 <

BZOJ 1531 POI2005 Bank notes 多重背包

题目大意:多重背包 一大早就水了个题233 #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #define M 20200 using namespace std; int n,k,b[220],c[220]; int f[M]; int main() { int i,j,k; cin>>n; for(i=1;i<=n;i++) sc

Investment_完全背包

Description John never knew he had a grand-uncle, until he received the notary's letter. He learned that his late grand-uncle had gathered a lot of money, somewhere in South-America, and that John was the only inheritor.John did not need that much mo

Just another Robbery(背包)

1079 - Just another Robbery   PDF (English) Statistics Forum Time Limit: 4 second(s) Memory Limit: 32 MB As Harry Potter series is over, Harry has no job. Since he wants to make quick money, (he wants everything quick!) so he decided to rob banks. He

hdu 2955 Robberies(01背包)

Robberies Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 17723    Accepted Submission(s): 6544 Problem Description The aspiring Roy the Robber has seen a lot of American movies, and knows that

BZOJ1531: [POI2005]Bank notes

1531: [POI2005]Bank notes Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 229  Solved: 119[Submit][Status] Description Byteotian Bit Bank (BBB) 拥有一套先进的货币系统,这个系统一共有n种面值的硬币,面值分别为b1, b2,..., bn. 但是每种硬币有数量限制,现在我们想要凑出面值k求最少要用多少个硬币. Input 第一行一个数 n, 1 <= n <

01背包+卡精度 Hdu 2955

<span style="color:#3333ff;">/* ----------------------------------------------------------------------------- author : Grant Yuan time : 2014.7.19 aldorithm: 01背包+卡精度 ------------------------------------------------------------------------

1531: [POI2005]Bank notes二进制优化(c++)

Description Byteotian Bit Bank (BBB) 拥有一套先进的货币系统,这个系统一共有n种面值的硬币,面值分别为b1, b2,..., bn. 但是每种硬币有数量限制,现在我们想要凑出面值k求最少要用多少个硬币. Input 第一行一个数 n, 1 <= n <= 200. 接下来一行 n 个整数b1, b2,..., bn, 1 <= b1 < b2 < ... < b n <= 20 000, 第三行 n 个整数c1, c2,...,

HDU2955 背包DP

Robberies Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 21310    Accepted Submission(s): 7885 Problem Description The aspiring Roy the Robber has seen a lot of American movies, and knows that