Piggy-Bank---hdu1114(完全背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1114
题意是有一个存钱罐,当它是空的时候重量为E,满的时候重量为F;已知存钱罐里面有 n 种钱,每种钱的价值为 P 重量为 W ;求存钱罐满的时候里面至少有多少钱;
是一个完全背包(求从n个物品中选出总重量不大于W的最大价值)问题:
二维数组:
(1 <= i <=n; 0<=j<=W)
dp[i][j] = max( dp[i-1][ j], dp[i][ j-w[i] ]+v[i] )(j>=w[i]);
=dp[i-1][j];(j<w[i]);
一维数组:
(1<=i<=n; w[i]<=j<=W)
dp[j]=max( dp[j], dp[ j-w[i] ]+v[i] );
而本题求得是最小价值所以稍微改一下就可以了
- #include<stdio.h>
- #include<string.h>
- #include<stdlib.h>
- #include<algorithm>
- using namespace std;
- #define N 50100
- #define INF 0xfffffff
- int dp[N], v[N], w[N], W, n;
- int main()
- {
- int T, E, F;
- scanf("%d", &T);
- while(T--)
- {
- scanf("%d %d", &E, &F);
- W = F - E;
- scanf("%d", &n);
- for(int i=; i<=n; i++)
- scanf("%d %d", &v[i], &w[i]);
- for(int i=; i<=W; i++)
- dp[i]=INF;
- dp[]=;
- for(int i=; i<=n; i++)
- {
- for(int j=w[i]; j<=W; j++)
- {
- dp[j]=min(dp[j], dp[j-w[i]]+v[i]);
- }
- }
- if(dp[W]==INF)
- printf("This is impossible.\n");
- else
- printf("The minimum amount of money in the piggy-bank is %d.\n", dp[W]);
- }
- return ;
- }
Piggy-Bank---hdu1114(完全背包)的更多相关文章
- 【bzoj1531】[POI2005]Bank notes 多重背包dp
题目描述 Byteotian Bit Bank (BBB) 拥有一套先进的货币系统,这个系统一共有n种面值的硬币,面值分别为b1, b2,..., bn. 但是每种硬币有数量限制,现在我们想要凑出面值 ...
- hdu1114 完全背包
题意:给出钱罐的重量,然后是每种钱的价值和重量,问钱罐里最少可能有多少钱. 完全背包. 代码: #include<iostream> #include<cstdio> #inc ...
- bzoj 1531 Bank notes 多重背包/单调队列
多重背包二进制优化终于写了一次,注意j的边界条件啊,疯狂RE(还是自己太菜了啊啊)最辣的辣鸡 #include<bits/stdc++.h> using namespace std; in ...
- HDU1114(完全背包装满问题)
Piggy-Bank Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total ...
- HDU-1114 完全背包+恰好装满问题
B - Piggy-Bank Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Subm ...
- ACM Piggy Bank
Problem Description Before ACM can do anything, a budget must be prepared and the necessary financia ...
- ImageNet2017文件下载
ImageNet2017文件下载 文件说明 imagenet_object_localization.tar.gz包含训练集和验证集的图像数据和地面实况,以及测试集的图像数据. 图像注释以PASCAL ...
- ImageNet2017文件介绍及使用
ImageNet2017文件介绍及使用 文件说明 imagenet_object_localization.tar.gz包含训练集和验证集的图像数据和地面实况,以及测试集的图像数据. 图像注释以PAS ...
- Android开发训练之第五章第五节——Resolving Cloud Save Conflicts
Resolving Cloud Save Conflicts IN THIS DOCUMENT Get Notified of Conflicts Handle the Simple Cases De ...
- hdu26道动态规划总结
前言:我们队的dp一直是我在做,说不上做的很顺,有些可以做,有些不能做.到现在为止,做dp题目也有七八十道了,除了背包问题的题目我可以说有百分之七八十的把握ac的话,其他类型的dp,还真没有多大把握. ...
随机推荐
- CodeForces 584D Dima and Lisa
1e9 以内的判断一个数是否是素数,可以直接朴素的暴力. 这倒题除了考虑1e9以内的素数的判断,还有一个歌德巴赫猜想:任意一个奇数都可一分解为三个素数的和. 第三个结论:素数是密集的,1e9以内, ...
- unix基础杂谈
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/ ...
- TCP会话劫持_转
前言通常,大家所说的入侵,都是针对一台主机,在获得管理员权限后,就很是得意:其实,真正的入侵是占领整个内部网络.针对内部网络的攻击方法比较多,但比较有效的方法非ARP欺骗.DNS欺骗莫属了.但是,不管 ...
- iOS学习笔记10 - Bundle和Info.plist
经常会有需要从应用中搜索并读取一个文件或图片.这时候就会用到如下的语句: NSString *path = [[NSBundle mainBundle] pathForResource:@" ...
- 解密.net
一直疑惑与几个专业的名词,今天好不easy看完了.net视频,能够好好总结一下了. 一.关于.net中的几个概念 ①..NET Framework用来保证应用程序的安全的.详细的百度上有解说. wat ...
- Android.mk介绍
Secrets of Android.mk Intro to Android.mk Simple example NDK Usage Defining Modules Simple APK APK D ...
- Docker:通过Git部署
这是我翻译的国外博客,如需转载请注明出处和原文链接 我一直听说Docker是个很棒的新事物,但是我一直提不起兴趣,直到我遇到一个切实的问题: 如果通过Docker来部署 Scout ,这么做会轻松一些 ...
- http文件导出
using (MemoryStream file = db.ExportExcel(model)) { context.Response.ContentType = "application ...
- IOS开发之 -- 线程初识
对于开发者来说,多线程永远有这一层神秘的色彩,似乎是一到迈步过去的坎,在同步.异步.串行.并行.死锁这几个名字当中,逐渐的放弃治疗,下面就多线程,谈一下自己的认识,理解的肯定不全面,只是一些简单的皮毛 ...
- 简述synchronized和java.util.concurrent.locks.Lock异同
主要相同点:Lock能完成synchronized所实现的所有功能.主要不同点:Lock有比synchronized更精确的线程语义和更好的性能.syncronized会自动释放锁,而Lock一定要程 ...