在 ACM 能够开展之前,必须准备预算,并获得必要的财力支持。该活动的主要收入来自于 Irreversibly Bound Money (IBM)。思路很简单。任何时候,某位 ACM 会员有少量的钱时,他将所有的硬币投入到小猪储钱罐中。这个过程不可逆,因为只有把小猪储钱罐打碎才能取出硬币。在足够长的时间之后,小猪储钱罐中有了足够的现金,用于支付 ACM 活动所需的花费。

但是,小猪储钱罐存在一个大的问题,即无法确定其中有多少钱。因此,我们可能在打碎小猪储钱罐之后,发现里面的钱不够。显然,我们希望避免这种不愉快的情况。唯一的可能是,称一下小猪储钱罐的重量,并尝试猜测里面的有多少硬币。假定我们能够精确判断小猪储钱罐的重量,并且我们也知道给定币种的所有硬币的重量。那么,我们可以保证小猪储钱罐中最少有多少钱。

你的任务是找出最差的情形,即判断小猪储钱罐中的硬币最少有多少钱。我们需要你的帮助。不能再贸然打碎小猪储钱罐了!

输入
输入包含 T 组测试数据。输入文件的第一行,给出了 T 的值。

对于每组测试数据,第一行包含 E 和 F 两个整数,它们表示空的小猪储钱罐的重量,以及装有硬币的小猪储钱罐的重量。两个重量的计量单位都是 g (克)。小猪储钱罐的重量不会超过 10 kg (千克),即 1 <= E <= F <= 10000 。每组测试数据的第二行,有一个整数 N (1 <= N <= 500),提供了给定币种的不同硬币有多少种。接下来的 N 行,每行指定一种硬币类型,每行包含两个整数 P 和 W (1 <= P <= 50000,1 <= W <=10000)。P 是硬币的金额 (货币计量单位);W 是它的重量,以 g (克) 为计量单位。

输出
对于每组测试数据,打印一行输出。每行必须包含句子 “The minimum amount of money in the piggy-bank is X.” 其中,X 表示对于给定总重量的硬币,所能得到的最少金额。如果无法恰好得到给定的重量,则打印一行 “This is impossible.” 。

示例输入
3
10 110
2
1 1
30 50
10 110
2
1 1
50 30
1 6
2
10 3
20 4

示例输出
The minimum amount of money in the piggy-bank is 60.
The minimum amount of money in the piggy-bank is 100.
This is impossible.

代码:

#include<bits/stdc++.h>using namespace std;int main()
{int dp[10100],v[550],w[550];int t;cin>>t;while(t--){int a,b,m,n;cin>>a>>b>>n;m=b-a;for(int i=0;i<n;i++)cin>>v[i]>>w[i];memset(dp,0x3f3f3f3f,sizeof(dp));dp[0]=0;for(int i=0;i<n;i++){for(int j=w[i];j<=m;j++)dp[j]=min(dp[j],dp[j-w[i]]+v[i]);}if(dp[m]==0x3f3f3f3f)printf("This is impossible.\n");else printf("The minimum amount of money in the piggy-bank is %d.\n",dp[m]);}return 0;
}

Piggy-Bank 背包问题相关推荐

  1. java实现动态规划算法解决存钱罐问题(piggy bank)

    一.实验目的 练习使用动态规划算法解决实际问题(使用Java语言实现) 二.实验内容 [问题描述] 给定一个空存钱罐的重量和这个存钱罐最多能装进去的重量,现在需要在不打破这个存钱罐的情况下猜测里面最少 ...

  2. piggy bank 完全背包

    题目描述 Before ACM can do anything, a budget must be prepared and the necessary financial support obtai ...

  3. 循环 直到 python_如果您在Python中存在慢循环,则可以对其进行修复……直到无法解决为止...

    循环 直到 python by Maxim Mamaev 马克西姆·马马耶夫(Maxim Mamaev) Let's take a computational problem as an exampl ...

  4. 这段时间做的简单dp题目(部分)

    这些时间vj上做的部分题目 HDU5115 题意:第一行t,t组测试数据,每组数据第一行输入n表示n匹狼,第二行给出一个序列表示每匹狼的伤害,第三行给出每匹狼能给周围狼的伤害增幅,求怎样打可以得到最小 ...

  5. 独家 | 人工神经网络中发现了人类大脑拥有的多模态神经元(附链接)

    作者:Gabriel Goh, Chelsea Voss, Daniela Amodei, Shan Carter, Michael Petrov, Justin Jay Wang, Nick Cam ...

  6. 一步步学习如何安装并使用SAP HANA Express Edition

    使用Jerry这篇文章在Google Cloud platform上的Kubernetes集群部署HANA Express里介绍的方法在Google Cloud Platform的Kubernetes ...

  7. TensorFlow神经网络(九)VGG net论文阅读笔记

    [注]内容来自MOOC人工智能实践TensorFlow笔记课程第8讲 来源:2015 ICLR 用于图像分类的文章: Very Deep Convolutional Networks for Larg ...

  8. ValueError: You are trying to load a weight file containing 0 layers into a model with 16 layers.

    ValueError: You are trying to load a weight file containing 0 layers into a model with 16 layers. 在使 ...

  9. imagenet数据集类别标签和对应的英文中文对照表

    预测结果输出one-hot类型,最大概率的下标即为对于类别号   0: 'tench, Tinca tinca',                             丁鲷(鱼) 1: 'gold ...

  10. Bootstrap 4 snippets 代码段

    Trigger Description b4-$ Bootstrap master template Alert Trigger Description b4-alert-additional-con ...

最新文章

  1. 中国内地高校ESI排名出炉:342所大学上榜
  2. Python 正在从简明转向臃肿,从实用转向媚俗
  3. java十六进制转二进制_Java进制都有哪些?
  4. 【前端模块】HTML5标签
  5. 一线大厂Java开发所需掌握的技能要点汇总
  6. C++重载运算符最好声明为友元
  7. js动态增加行 删除行
  8. Struts2基础知识(二)
  9. 为什么c语言运行了是cmd,为什么C语言的程式码执行都在命令提示符进行?而且学习的基本都是数学问题,跟开发软体有什么关系?...
  10. controller 中@autowired 报错_Spring中常用注解
  11. WPF 微信 MVVM 【续】发送部分QQ表情
  12. python爬虫实例(百度图片、网站图片)
  13. java restsharp_RestSharp使用总结
  14. changeable和changeful_change的形容词是什么?
  15. 如何显示密件抄送人员地址_什么是密件抄送,以及为什么不使用它会成为一个可怕的人...
  16. 2020年黑龙江省大豆种植分布数据
  17. 项目管理(PMP)项目沟通管理
  18. 卸载3dMax2012流程
  19. python中fill函数_在figu中旋转matplotlib的fill函数
  20. Hbuildx 使用vue打包的App实现微信支付功能

热门文章

  1. la force Comicsonair
  2. mysql数据库实战演练_SQL 语句实战演练
  3. 基于Netty的RPC架构实战演练
  4. 精读4:一个和钱打交道的数据分析行业
  5. python笔记 基础语法·第0课【print & 转义字符】
  6. win7 android 双系统平板 p1000,优派Win7/Android双系统ViewPad 100
  7. android.view.WindowLeaked解决办法
  8. java多线程(4) ----- Lock的使用
  9. mac出现文件夹问号_MacBook Air开机出现一个带问号的文件夹图案是怎么回事?电脑已经无法进入系统!...
  10. 外贸推广方式有哪些,外贸推广怎么做