poj 1787 Charlie's Change
2024-08-24 09:45:33
// 题意 给定一个数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 ;
}
最新文章
- C#读取XML文件并取值
- 递归查询树形结构的SQL
- 用Mybatis返回Map,List<;Map>;
- APP自动化测试中Monkey和 MonkeyRunner
- python操作db2和mysql ,ibm_db
- 《1024伐木累》-te别篇,庭审你知道吗?
- Sqlserver 平面文件导入/ SSIS FlatFileSource导入文件时 出现LocaleID is not installed报错问题
- About the Storage allocation
- 【转】无废话WCF系列教程
- Monkeyrunner入门示例
- Input File 表单上传按钮美化
- curl返回值写入内存的场景
- QStringLiteral的两篇外文解释(编译期转换成QString)
- 14.10.2 File Space Management 文件空间管理:
- poj3176--Cow Bowling(dp:数塔问题)
- [知了堂学习笔记]_纯JS制作《飞机大战》游戏_第1讲(实现思路与游戏界面的实现)
- python3中的一些小改动
- ASP.NET Core 处理 404 Not Found
- 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
- 问题记录 --Error parsing column 1 (Function_Num=10 - String)”