HDU 1114 Piggy-Bank 猪仔储钱罐(完全背包)
题意:
给定一个存钱罐中要存硬币,知道空罐的重量和欲装满的重量,是否能装入?若能,打印最小价值。(注:能装的硬币重量一定刚刚好,里面的总价值要达到最小)
输入:
包含了T个测试例子,在第一行给出。接下来有T个例子,每个例子第一行包括两整数E和F,分别代表空罐的重量和装满钱的重量,单位都为克。 1 <= E <= F <= 10000. 第二行包含了一个整数N,代表了硬币的种类。(1 <= N <= 500)接下来N行是N种硬币的信息,每行有两个整数P和W,分别代表价值和重量,单位是克。
输出:每例输出一行,若能装入,打印The minimum amount of money in the piggy-bank is X. 其中X是钱的总额。若不能装入,打印 This is impossible.
思路:
和完全背包一样,不同的是硬币的重量要恰好,不能多或少,总价值要最小,这与完全背包问题相反。需要特别地处理这两个问题,重量要恰好,那么在更新dp的时候要保证这一点,总价要最小,那么在比较的时候要用min而不是max了。
1 #include <iostream> 2 #define MAX 0xfffffff 3 using namespace std; 4 //要求:1、刚好装满 2、总价值最小 5 int value[501]; 6 int weight[501]; 7 int dp[10010]; 8 int min(int a,int b) 9 { 10 return a<b?a:b; 11 } 12 int cal(int v,int n) //空间、种类 13 { 14 int i,j; 15 dp[0]=0; 16 for(i=1;i<=v;i++) 17 dp[i]=MAX; 18 for(i=1;i<=n;i++) 19 for(j=weight[i];j<=v;j++) 20 { 21 dp[j]=min( dp[j] , dp[j-weight[i]] + value[i] ); 22 } 23 return dp[v]; 24 } 25 void main() 26 { 27 int T; 28 scanf("%d",&T); 29 int E,F,N,ans; 30 while(T--) 31 { 32 int i; 33 scanf("%d%d",&E,&F); //空罐、满罐 34 scanf("%d",&N); //多少种硬币 35 for(i=1;i<=N;i++) 36 { 37 scanf("%d%d",&value[i],&weight[i]); //价值、重量 38 } 39 ans=cal(F-E,N); 40 if(ans==MAX) 41 printf("This is impossible.\n"); 42 else 43 printf("The minimum amount of money in the piggy-bank is %d.\n",ans); 44 } 45 }
1114
转载于:https://www.cnblogs.com/xcw0754/p/4231338.html
HDU 1114 Piggy-Bank 猪仔储钱罐(完全背包)相关推荐
- 【强行点出机械师天赋,修复无脸男储钱罐】
事情是这样的,前两天在往储钱罐里投币的时候,突然有一个很大胆的想法"如果把它电池拔了会怎样?" en ,年轻人有想法就要勇敢的去尝试,所以就悲剧了.... 这就是拔了电池后 ...
- D - 猪钱罐 HDU - 1114
D - 猪钱罐 HDU - 1114 在 ACM 能够开展之前,必须准备预算,并获得必要的财力支持.该活动的主要收入来自于 Irreversibly Bound Money (IBM).思路很简单.任 ...
- Piggy-Bank HDU - 1114(多重背包)
在 ACM 能够开展之前,必须准备预算,并获得必要的财力支持.该活动的主要收入来自于 Irreversibly Bound Money (IBM).思路很简单.任何时候,某位 ACM 会员有少量的钱时 ...
- HDU 1114 iggy-Bank(完全背包)
水 给出小猪钱罐的重量和装满钱后的重量,然后是几组数据,每组数据包括每种钱币的价值与重量 要求出重量最少能装满钱罐时的最大价值 1 #include<iostream> 2 #includ ...
- 【微电网优化】基于粒子群求解CHP机组、气网、电网、储热罐和电锅炉微电网优化模型附matlab代码
1 简介 近年来随着全球性的环境污染问题与能源危机日益突出,人们的环保意识与节能意识不断提高,使得微电网成为了电力系统领域的研究热点之一.相对于传统的大电网,微电网具有自身的特点和优势,发电过程产生的 ...
- HDU 1114(没有变形的完全背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1114 Piggy-Bank Time Limit: 2000/1000 MS (Java/Others ...
- HDU 1114 Piggy-Bank 简单DP
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1114 题目大意:完全背包问题,不过这次是求的最小值. 解题思路:首先是初始化问题,其次就是状态转移的时 ...
- HDU 1114:Piggy-Bank ← 完全背包问题
[题目概述] 给定一个数T,表示T个样例. 针对每个样例,第一行两个值,分别为小猪存钱罐空时的重量E,满时的重量F. 第二行一个值,表示小猪存钱罐中钱币的种类N. 接下来N行,每行两个值,分别某种钱币 ...
- HDU 1114—Piggy-Bank(储蓄罐)(完全背包)
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1114 题意 开始时输入T,代表一共有T个样例. 对于每一个样例,第一行给出E与F(1<=E,F< ...
最新文章
- 2012-2013年下学期计划
- 清华毕业生开发新特效编程语言:99 行代码背后 20 多年的故事...
- 安川机器人焊枪切换设定方法_安川机器人参数更改方法
- 检索COM类工厂组件的CLSID 80040154(不容易啊!!) 80040154.
- 让开发人员变平庸的八个习惯,看看你中了几条
- Android和Linux kernel发展史
- 使用Elizabeth为您的应用程序生成随机数据
- android gridview添加标题,android gridview布局添加多個title
- 【python】Tkinter窗口可视化(二)
- ARC077C pushpush 递推
- C++封装Mysql数据库
- 网吧服务器系统安装,网吧服务器和客户端安装教程
- 二牛频道-收集分享各类不花钱的各类绿色优质软件-互联网资源分享
- 金融类自定义View(二)--股票分时图
- RSA+AES混合加密实例
- android短信接收流程
- android系统证书导入工具,添加Fiddler/Mitmproxy证书为安卓系统证书
- win10时间不准_安卓机时间突然变慢10分钟?移动发布回应
- java 遍历二叉树_java实现二叉树遍历的三种方式
- 2022年最新前端面试题、高频面试题、面试题总结
热门文章
- office办公软件插件推荐word插件excel插件ppt插件
- 马化腾:通向互联网未来的七个路标
- 用户画像标签数据存储之Hive存储
- 开发电脑用 Windows 还是 Mac
- python匿名函数调用_(Python) 函数、匿名函数
- 如何修改MySQL监听IP地址
- formality软件使用教程
- UE:无法解析的外部符号 “public: __cdecl FKey::~FKey(void)“ (??1FKey@@QEAA@XZ)
- 计算机关闭自带杀毒,Win10专业版系统中关闭自带杀毒软件操作方法
- 陌陌发布新版 增加阅后即焚和短视频功能