Piggy-Bank 背包问题
在 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 背包问题相关推荐
- java实现动态规划算法解决存钱罐问题(piggy bank)
一.实验目的 练习使用动态规划算法解决实际问题(使用Java语言实现) 二.实验内容 [问题描述] 给定一个空存钱罐的重量和这个存钱罐最多能装进去的重量,现在需要在不打破这个存钱罐的情况下猜测里面最少 ...
- piggy bank 完全背包
题目描述 Before ACM can do anything, a budget must be prepared and the necessary financial support obtai ...
- 循环 直到 python_如果您在Python中存在慢循环,则可以对其进行修复……直到无法解决为止...
循环 直到 python by Maxim Mamaev 马克西姆·马马耶夫(Maxim Mamaev) Let's take a computational problem as an exampl ...
- 这段时间做的简单dp题目(部分)
这些时间vj上做的部分题目 HDU5115 题意:第一行t,t组测试数据,每组数据第一行输入n表示n匹狼,第二行给出一个序列表示每匹狼的伤害,第三行给出每匹狼能给周围狼的伤害增幅,求怎样打可以得到最小 ...
- 独家 | 人工神经网络中发现了人类大脑拥有的多模态神经元(附链接)
作者:Gabriel Goh, Chelsea Voss, Daniela Amodei, Shan Carter, Michael Petrov, Justin Jay Wang, Nick Cam ...
- 一步步学习如何安装并使用SAP HANA Express Edition
使用Jerry这篇文章在Google Cloud platform上的Kubernetes集群部署HANA Express里介绍的方法在Google Cloud Platform的Kubernetes ...
- TensorFlow神经网络(九)VGG net论文阅读笔记
[注]内容来自MOOC人工智能实践TensorFlow笔记课程第8讲 来源:2015 ICLR 用于图像分类的文章: Very Deep Convolutional Networks for Larg ...
- 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. 在使 ...
- imagenet数据集类别标签和对应的英文中文对照表
预测结果输出one-hot类型,最大概率的下标即为对于类别号 0: 'tench, Tinca tinca', 丁鲷(鱼) 1: 'gold ...
- Bootstrap 4 snippets 代码段
Trigger Description b4-$ Bootstrap master template Alert Trigger Description b4-alert-additional-con ...
最新文章
- 中国内地高校ESI排名出炉:342所大学上榜
- Python 正在从简明转向臃肿,从实用转向媚俗
- java十六进制转二进制_Java进制都有哪些?
- 【前端模块】HTML5标签
- 一线大厂Java开发所需掌握的技能要点汇总
- C++重载运算符最好声明为友元
- js动态增加行 删除行
- Struts2基础知识(二)
- 为什么c语言运行了是cmd,为什么C语言的程式码执行都在命令提示符进行?而且学习的基本都是数学问题,跟开发软体有什么关系?...
- controller 中@autowired 报错_Spring中常用注解
- WPF 微信 MVVM 【续】发送部分QQ表情
- python爬虫实例(百度图片、网站图片)
- java restsharp_RestSharp使用总结
- changeable和changeful_change的形容词是什么?
- 如何显示密件抄送人员地址_什么是密件抄送,以及为什么不使用它会成为一个可怕的人...
- 2020年黑龙江省大豆种植分布数据
- 项目管理(PMP)项目沟通管理
- 卸载3dMax2012流程
- python中fill函数_在figu中旋转matplotlib的fill函数
- Hbuildx 使用vue打包的App实现微信支付功能
热门文章
- la force Comicsonair
- mysql数据库实战演练_SQL 语句实战演练
- 基于Netty的RPC架构实战演练
- 精读4:一个和钱打交道的数据分析行业
- python笔记 基础语法·第0课【print & 转义字符】
- win7 android 双系统平板 p1000,优派Win7/Android双系统ViewPad 100
- android.view.WindowLeaked解决办法
- java多线程(4) ----- Lock的使用
- mac出现文件夹问号_MacBook Air开机出现一个带问号的文件夹图案是怎么回事?电脑已经无法进入系统!...
- 外贸推广方式有哪些,外贸推广怎么做