所谓的全然背包,就是说物品没有限制数量的。

怎么起个这么intimidating(吓人)的名字?

事实上和一般01背包没多少差别,只是数量能够无穷大,那么就能够利用一个物品累加到总容量结尾就能够了。

本题要求装满的,故此添加个限制就能够了。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
inline int min(int a, int b) { return a < b? a : b; } const int MAX_W = 10001;
const int MAX_N = 501;
int val[MAX_N] = {0};
int wei[MAX_N] = {0};
int tbl[MAX_W]; int bagDP(int N, int W)
{
for (int i = 0; i <= W; i++) tbl[i] = 0; for (int j = wei[1]; j <= W; j += wei[1])
tbl[j] = val[1] + tbl[j-wei[1]]; for (int i = 2; i <= N; i++)
{
for (int j = wei[i]; j <= W; j++)
{
if (j-wei[i]==0 || tbl[j-wei[i]])
{
if (tbl[j]) tbl[j] = min(tbl[j],tbl[j-wei[i]]+val[i]);
else tbl[j] = tbl[j-wei[i]]+val[i];
}
}
}
return tbl[W];
} int main()
{
int E, F;//weight of an empty pig and of the pig filled with coins
int T, N;// P:value, W: weight
scanf("%d", &T);
while (T--)
{
scanf("%d %d %d", &E, &F, &N);
for (int i = 1; i <= N; i++)
{
scanf("%d %d", &val[i], &wei[i]);
}
int ans = bagDP(N, F-E);
if (ans) printf("The minimum amount of money in the piggy-bank is %d.\n", ans);
else puts("This is impossible.");
}
return 0;
}

POJ 1384 Piggy-Bank 背包DP的更多相关文章

  1. POJ 1384 POJ 1384 Piggy-Bank(全然背包)

    链接:http://poj.org/problem?id=1384 Piggy-Bank Time Limit: 1000MS Memory Limit: 10000K Total Submissio ...

  2. poj 3624 Charm Bracelet 背包DP

    Charm Bracelet Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://poj.org/problem?id=3624 Descripti ...

  3. poj 2229 【完全背包dp】【递推dp】

    poj 2229 Sumsets Time Limit: 2000MS   Memory Limit: 200000K Total Submissions: 21281   Accepted: 828 ...

  4. POJ 1384 Piggy-Bank(完全背包)

    Description Before ACM can do anything, a budget must be prepared and the necessary financial suppor ...

  5. POJ 1384【完全背包】

    题意: 已知储蓄罐满时的质量f以及空时质量e, 有n种硬币,每种硬币的价值为p,质量为w, 求该储蓄罐中的最少有多少钱? 思路: 完全背包思想,问题是在一个重量下的最小价值 那么只要变一下符号就好了? ...

  6. POJ 1155 树形背包(DP) TELE

    题目链接:  POJ 1155 TELE 分析:  用dp[i][j]表示在结点i下最j个用户公司的收益, 做为背包处理.        dp[cnt][i+j] = max( dp[cnt][i+j ...

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

    题目描述 Byteotian Bit Bank (BBB) 拥有一套先进的货币系统,这个系统一共有n种面值的硬币,面值分别为b1, b2,..., bn. 但是每种硬币有数量限制,现在我们想要凑出面值 ...

  8. poj 1417 True Liars(并查集+背包dp)

    题目链接:http://poj.org/problem?id=1417 题意:就是给出n个问题有p1个好人,p2个坏人,问x,y是否是同类人,坏人只会说谎话,好人只会说实话. 最后问能否得出全部的好人 ...

  9. poj 2184 01背包变形【背包dp】

    POJ 2184 Cow Exhibition Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 14657   Accepte ...

  10. poj1417(带权并查集+背包DP+路径回溯)

    题目链接:http://poj.org/problem;jsessionid=8C1721AF1C7E94E125535692CDB6216C?id=1417 题意:有p1个天使,p2个恶魔,天使只说 ...

随机推荐

  1. NavigationBar 隐藏底部边线,阴影

    NavigationBar 底部默认有一条边线  假设项目中须要隐藏何以採用这个库 https://github.com/samwize/UINavigationBar-Addition/

  2. android--手机桌面添加网址链接图标(解决方式)

    这样的做法最普遍最简单: 1.新建一个android空项目: 2.在drawable文件夹下加入图标文件,如icon.png:在values文件夹下的strings.xml文件里添加名称.如websi ...

  3. SQL Server Database 维护计划创建一个完整的备份策略

     SQL Server维护计划Maintenance Plan这是一个非常有用的维护工具,能够完成大部分的数据库维护任务,通过这些功能包.您可以省略大量的编码时间. 介绍的不是非常多,特此补上一篇 ...

  4. Struts2中指定的校验文件不起作用的原因

    转载请注意出处:http://blog.csdn.net/bettarwang/article/details/39801733 我们知道,假设要为某个Action指定校验文件.那么就要将" ...

  5. AntiXSS - 支持Html同时防止XSS攻击

    AntiXSS - 支持Html同时防止XSS攻击 跨站脚本攻击(XSS)已经不是什么新鲜的话题了,甚至很多大公司也为此吃尽苦头.最简单直接的防范方法,就是不允许任何html标签输入,对用户输入进行编 ...

  6. WPF案例 (三) 模拟QQ“快速换装"界面

    原文:WPF案例 (三) 模拟QQ"快速换装"界面 这个小程序使用Wpf模拟QQ快速换装页面的动画特效,通过使用组合快捷键Ctrl+Left或Ctrl+Right,可实现Image ...

  7. python面向对象的继承

    无话可说,继承主要是一些父类继承,代码是非常具体的 #!/usr/bin/env python #coding:utf-8 class Father(object):#新式类 def __init__ ...

  8. JDBC数据库编程常用接口(转)

    JDBC的全称是Java DataBase Connectivity,是一套面向对象的应用程序接口(API),制定了统一的访问各种关系数据库的标准接口,为各个数据库厂商提供了标准接口的实现.这东西能够 ...

  9. QVector&lt;QString&gt; 显示器里面的动态数组元素QString和char *转变

    QVector类是一类提供了动态数组模板. QVector<T>是Qt普通容器类的一种. 它将自己的每个对象存储在连续的内存中.能够使用索引號来高速訪问它们.QList<T>. ...

  10. shell手册--笨鸟杰作

    ==================================================================================================== ...