hdu acm 1114 Piggy-Bank 解题报告
2024-09-02 05:23:08
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1114
题目意思:给出一个空的猪仔钱ang 的重量E,和一个装满钱的猪仔钱ang 的重量F你,实质上能装入得钱的重量就是F - E。接着有n 种币种,每个币种有两个属性刻画:面值 + 重量。问恰好装满(注意关键词: 恰好)后,需要的钱的最少数量所对应的钱是多少(有点拗口= =。)拿第一组数据来说,
10 110
2
1 1
30 50
我们当然是用两张30 来填满这个只能装100重量的罐啦,如果都用面值为1的货币来装,就需要100张了,显然不够2张好啦。
好啦,回归正题,这道题是完全背包的题目。初始化dp 数组的 INF 一定要好大好大~~~否则会....wa !
有学过的应该都不陌生,如果也像我那样才刚接触,就可以看看dd 大牛(其实我也不知道是谁来滴)的 背包九讲
或者队长给的:http://love-oriented.com/pack/pack2rc.pdf (这人...不知道是不是dd 大牛)
这个是我看得最懂的(反正我是比较笨啦):http://wenku.baidu.com/link?url=yHMBToaaKpk8mRFn0aCCcq02MTyCIjGQ8npyI-XDfkAvkLqNRKpxLkNnJf0s3l-XdZK99XwQZiEZ6hqxFt0WZbRMu3ZaNxdE-1o0ZI4ssq3
还有一个很重要的地方,初始化!!注意是恰好装满,也就不能用 0 来初始化dp 数组,而要用 INF。(dd大牛是有写的,看了还是不太懂为什么这样)
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std; const int maxn = 1e4 + ;
const int INF = ; // 这个INF一定要好大好大好大!!!! int w[maxn], v[maxn];
int dp[maxn]; int main()
{
int T, n, m, E, F;
while (scanf("%d", &T) != EOF)
{
while (T--)
{
scanf("%d%d", &E, &F);
int Maxweight = F - E;
scanf("%d", &n);
for (int i = ; i < n; i++)
scanf("%d%d", &v[i], &w[i]);
for (int i = ; i <= Maxweight; i++)
dp[i] = INF;
dp[] = ;
for (int i = ; i < n; i++)
{
for (int j = w[i]; j <= Maxweight; j++)
{
dp[j] = min(dp[j], dp[j-w[i]]+v[i]); // 选取币值最少的
}
}
if (dp[Maxweight] != INF)
printf("The minimum amount of money in the piggy-bank is %d.\n", dp[Maxweight]);
else
printf("This is impossible.\n");
}
}
return ;
}
最新文章
- Hadoop中HDFS的管理
- 透过 HoloLens,微软抢先看到了个人计算机的未来
- Oracle数据库入门——常用的数据字典
- [CareerCup] 8.8 Othello Game 黑白棋游戏
- tinyXml直接解析XML字符串
- boot/bootsect.S
- FileReader 基本介绍
- Cocoa 之 Core Data(2)- 代码示例
- Vimperator技巧
- 一个简单的servlet小程序
- JS中金额转换以及格式化
- Hexo优化 | 创建sitemap站点地图并向Google提交
- 关于js渲染网页时爬取数据的思路和全过程(附源码)
- windows 实用技巧
- xshell配置通过堡垒机直接登陆到内网机器
- cmd 命令相关
- 2018.09.23 codeforces 1053B. Vasya and Good Sequences(前缀和)
- redux中的compose源码分析
- java web 运动前端
- codeforce452DIV2——F. Letters Removing
热门文章
- ElasticSearch聚合入门(续)
- 【ZOJ4053】Couleur(主席树,set,启发式)
- Log4J使用详情
- 优秀的数据序列和还原类----TSimpleMsgPack
- NSURLConnection和NSMutableURLRequest 实现同步、异步请求
- Android PullToRefresh 下拉刷新,上拉很多其它,支持ScrollView,ListView,可方便拓展GridView,WebView等
- 【Discuz】ucenter通讯失败与Discuz的头像无法显示
- poj 1694 An Old Stone Game 树形dp
- 用rsync命令删除大文件夹
- mmall 项目实战(一)项目初始化