// 题意 给定一个数p,要求用四种币值为1,5,10,25的硬币拼成p,并且硬币数要最多,如果无解输出"Charlie cannot buy 
coffee.",1<=p<=1万,1<=硬币数量<=1万
// 多重背包
// 网上见有用完全背包 貌似那个也可以 而且要快些
// 一下是完全背包大致写法
 for (i = 1; i <= 4; ++i) {  
  • memset(used,0,sizeof(used));
  • for (j = mon[i]; j <= p; ++j)
  • if (dp[j-mon[i]] + 1 > dp[j] && dp[j-mon[i]]
  • && used[j-mon[i]] + 1 <= num[i]) {
  • dp[j]   = dp[j-mon[i]] + 1;
  • used[j] = used[j-mon[i]] + 1;
  • path[j] = j - mon[i];
  • }
  • }

#include <iostream>
#include <algorithm>
#include <queue>
#include <math.h>
#include <stdio.h>
#include <string.h>
using namespace std;
#define MOD 1000000007
#define maxn 10010
int dp[maxn];
struct node{
int from;
int kind;
int num;
}rc[maxn];
int main()
{
int P;
int C[];
int V[]={,,,};
while(scanf("%d %d %d %d %d",&P,&C[],&C[],&C[],&C[]),P|C[]|C[]|C[]|C[]){// 坑爹开始忘记把P加入进行|了 // if(P==0) { printf("Charlie cannot buy coffee.\n");continue;}
memset(dp,,sizeof(dp));
int ans[]={,,,};
int i,j,k;
int tp;
dp[]=;
for(i=;i<;i++){
k=;
while(C[i]>=k){
tp=k*V[i];
for(j=P;j>=tp;j--)
if(dp[j-tp]&&dp[j]<dp[j-tp]+k)
{
dp[j]=dp[j-tp]+k;
rc[j].from=j-tp;
rc[j].kind=i;
rc[j].num=k;
}
C[i]-=k;
k=k<<;
}
if(C[i]){
k=C[i];
tp=k*V[i];
for(j=P;j>=tp;j--)
if(dp[j-tp]&&dp[j]<dp[j-tp]+k)
{
dp[j]=dp[j-tp]+k;
rc[j].from=j-tp;
rc[j].kind=i;
rc[j].num=k;
}
}
}
if(dp[P]){
j=P;
while(j){
ans[rc[j].kind]+=rc[j].num;
j=rc[j].from;
}
printf("Throw in %d cents, %d nickels, %d dimes, and %d quarters.\n",ans[],ans[],ans[],ans[]);
}
else
printf("Charlie cannot buy coffee.\n");
}
return ;
}

最新文章

  1. C#读取XML文件并取值
  2. 递归查询树形结构的SQL
  3. 用Mybatis返回Map,List&lt;Map&gt;
  4. APP自动化测试中Monkey和 MonkeyRunner
  5. python操作db2和mysql ,ibm_db
  6. 《1024伐木累》-te别篇,庭审你知道吗?
  7. Sqlserver 平面文件导入/ SSIS FlatFileSource导入文件时 出现LocaleID is not installed报错问题
  8. About the Storage allocation
  9. 【转】无废话WCF系列教程
  10. Monkeyrunner入门示例
  11. Input File 表单上传按钮美化
  12. curl返回值写入内存的场景
  13. QStringLiteral的两篇外文解释(编译期转换成QString)
  14. 14.10.2 File Space Management 文件空间管理:
  15. poj3176--Cow Bowling(dp:数塔问题)
  16. [知了堂学习笔记]_纯JS制作《飞机大战》游戏_第1讲(实现思路与游戏界面的实现)
  17. python3中的一些小改动
  18. ASP.NET Core 处理 404 Not Found
  19. Error parsing HTTP request header Note: further occurrences of HTTP header parsing errors...java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are
  20. 问题记录 --Error parsing column 1 (Function_Num=10 - String)”

热门文章

  1. 清除HTML中的特殊字符
  2. SQL Server 之 校对
  3. JQuery绑定和注销事件
  4. prefix springmvc
  5. ADO.NET EF实体框架
  6. java基础知识回顾之java Thread类学习(九)--wait和notify区别
  7. hdu 2582 f(n) 数学
  8. Selenium WebDriver 中鼠标和键盘事件分析及扩展(转)
  9. lintcode: 有效的括号序列
  10. eclipse安装插件的各种方法