题目链接: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 ;
}

最新文章

  1. Hadoop中HDFS的管理
  2. 透过 HoloLens,微软抢先看到了个人计算机的未来
  3. Oracle数据库入门——常用的数据字典
  4. [CareerCup] 8.8 Othello Game 黑白棋游戏
  5. tinyXml直接解析XML字符串
  6. boot/bootsect.S
  7. FileReader 基本介绍
  8. Cocoa 之 Core Data(2)- 代码示例
  9. Vimperator技巧
  10. 一个简单的servlet小程序
  11. JS中金额转换以及格式化
  12. Hexo优化 | 创建sitemap站点地图并向Google提交
  13. 关于js渲染网页时爬取数据的思路和全过程(附源码)
  14. windows 实用技巧
  15. xshell配置通过堡垒机直接登陆到内网机器
  16. cmd 命令相关
  17. 2018.09.23 codeforces 1053B. Vasya and Good Sequences(前缀和)
  18. redux中的compose源码分析
  19. java web 运动前端
  20. codeforce452DIV2——F. Letters Removing

热门文章

  1. ElasticSearch聚合入门(续)
  2. 【ZOJ4053】Couleur(主席树,set,启发式)
  3. Log4J使用详情
  4. 优秀的数据序列和还原类----TSimpleMsgPack
  5. NSURLConnection和NSMutableURLRequest 实现同步、异步请求
  6. Android PullToRefresh 下拉刷新,上拉很多其它,支持ScrollView,ListView,可方便拓展GridView,WebView等
  7. 【Discuz】ucenter通讯失败与Discuz的头像无法显示
  8. poj 1694 An Old Stone Game 树形dp
  9. 用rsync命令删除大文件夹
  10. mmall 项目实战(一)项目初始化