poj1787 Charlie's Change
思路:
完全背包,记录路径。
实现:
#include <bits/stdc++.h>
using namespace std;
const int INF = 0x3f3f3f3f;
int v[] = {, , , };
int c[], m;
int dp[], used[], path[];
int main()
{
while (cin >> m >> c[] >> c[] >> c[] >> c[], m || c[] || c[] || c[] || c[])
{
memset(used, , sizeof used);
memset(path, , sizeof path);
path[] = -;
for (int i = ; i <= m; i++) dp[i] = -INF;
dp[] = ;
for (int i = ; i < ; i++)
{
memset(used, , sizeof used);
for (int j = v[i]; j <= m; j++)
{
if (dp[j - v[i]] != -INF && dp[j - v[i]] + > dp[j] && used[j - v[i]] < c[i])
{
dp[j] = dp[j - v[i]] + ;
used[j] = used[j - v[i]] + ;
path[j] = j - v[i];
}
}
}
if (dp[m] <= -INF) { cout << "Charlie cannot buy coffee." << endl; }
else
{
int ans[]; memset(ans, , sizeof ans);
while (path[m] != -)
{
ans[m - path[m]]++;
m = path[m];
}
cout << "Throw in " << ans[v[]] << " cents, " << ans[v[]] << " nickels, " << ans[v[]] << " dimes, and " << ans[v[]] << " quarters." << endl;
}
}
return ;
}
poj1787 Charlie's Change的更多相关文章
- poj1787 Charlie's Change
Description Charlie is a driver of Advanced Cargo Movement, Ltd. Charlie drives a lot and so he ofte ...
- (多重背包+记录路径)Charlie's Change (poj 1787)
http://poj.org/problem?id=1787 描述 Charlie is a driver of Advanced Cargo Movement, Ltd. Charlie dri ...
- Charlie's Change(完全背包+路径记忆)
Charlie's Change Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 3176 Accepted: 913 D ...
- Charlie's Change(完全背包记录路径)
Charlie is a driver of Advanced Cargo Movement, Ltd. Charlie drives a lot and so he often buys coffe ...
- Charlie's Change POJ - 1787
Time limit 1000 ms Memory limit 30000 kB description Charlie is a driver of Advanced Cargo Movement, ...
- poj 1787 Charlie's Change (多重背包可作完全背包)
Charlie's Change Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 3792 Accepted: 1144 ...
- B - Charlie's Change
Charlie is a driver of Advanced Cargo Movement, Ltd. Charlie drives a lot and so he often buys coffe ...
- [POJ 1787]Charlie's Change (动态规划)
题目链接:http://poj.org/problem?id=1787 题意:有4种货币分别是1元,5元,10元,20元.现在告诉你这四种货币分别有多少个,问你正好凑出P元钱最多可以用多少货币.每种货 ...
- POJ 1787 Charlie's Change (完全背包/多重背包,输出方案的物品个数)
网上说是多重背包,因为要输出方案,还要记录下路径,百度一下题解就可以. 自己做的时候,还没了解过多重背包,该题直接往完全背包思考了.咖啡的钱看作总的背包容量,1.5.10.25分别代表四种物品的重量, ...
随机推荐
- oracle删除表前先判断表是否存在
DECLARE numbe NUMBER;BEGIN SELECT COUNT(1) INTO numbe FROM USER_TABLES WHERE TABLE_NAME = ...
- 选择器的使用(target选择器)
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head><meta ...
- 模拟用户点击弹出新页面不会被浏览器拦截_javascript技巧
原文:http://www.html5cn.com.cn/article/zxzx/3195.html 相信用过window.open的小伙伴们都遇到过被浏览器拦截导致页面无法弹出的情况:我们换下思路 ...
- JAVA: 解决is expected to be of type but was actually of type com.sun.proxy.$Proxy的问题
修改spring-config文件中的transactionManager部分为 <tx:annotation-driven proxy-target-class="true" ...
- laravel 邮件
本文使用qq邮箱 env邮件配置: MAIL_FROM_ADDRESS = 17******92@qq.com MAIL_FROM_NAME = listen~ MAIL_DRIVER=smtp MA ...
- 手动安装Firefox Linux
(2015-06-05 17:22:19)[编辑][删除] 转载▼ 标签: 股票 Firefox 下载文件以.tar和.bz2格式保存,必须从这些压缩包中提取文件.不想删除当前安装的 Firefox, ...
- 【SSH进阶之路】Hibernate搭建开发环境+简单实例(二)
Hibernate是很典型的持久层框架,持久化的思想是很值得我们学习和研究的.这篇博文,我们主要以实例的形式学习Hibernate,不深究Hibernate的思想和原理,否则,一味追求,苦学思想和原理 ...
- Mysql数据库再度使用
查看数据库端口: show global variables like 'port'; 谨记:每一条sql结束的语句后都要接上分号. 在连接数据库时遇到过这种问题: Fatal error: Call ...
- 【项目实战】---使用ajax完毕username是否存在异步校验
小伙伴在上网的时候.须要下载或者观看某些视频资料,更或者是在逛淘宝的时候.我们都须要注冊一个用户,当我们填写好各种信息,点击确定的时候.提示username已经存在.小编就想,为什么当我们填写完use ...
- 设计并实现一个LRU Cache
一.什么是Cache 1 概念 Cache,即高速缓存,是介于CPU和内存之间的高速小容量存储器.在金字塔式存储体系中它位于自顶向下的第二层,仅次于CPU寄存器.其容量远小于内存,但速度却可以接近CP ...