POJ 2581 Exact Change Only(dp)

『杭电1353』Exact Change Only Problem Description Boudreaux reached over and shook awake Thibodeaux, who had dozed off somewhere in New Mexico. "Where we at?" Thibodeaux groggily yawned. "Not in Vegas, I gua-ran-tee, but could you get my knapsack?" Boudreaux asked, gesturing to the w 阅读详情

Language:
Exact Change Only
Time Limit: 1000MS Memory Limit: 65536K
Total Submissions: 2584 Accepted: 883

Description

Boudreaux reached over and shook awake Thibodeaux, who had dozed off somewhere in New Mexico. "Where we at?" Thibodeaux groggily yawned. 

"Not in Vegas, I gua-ran-tee, but could you get my knapsack?" Boudreaux asked, gesturing to the worn, leather backpack in the back seat of their cherry red Ford Miata. 

"Why, is there a problem?" 

"Just hand me my knapsack, problem or not." 

Thibodeaux complied, glancing up as Boudreaux slowed the car to a stop in a line of vehicles approaching a toll booth. "$1.65 -- Exact change only," Thibodeaux read the yellow sign on the front of a small wooden building occupied by a lone toll booth operator. "I have to get $1.65 in exact change?" Thibodeaux asked, digging through the knapsack, "all I have are ten quarters, four dimes, and three pennies. I don't have any nickels . . ." 

"Just give me five of the quarters and the four dimes," Boudreaux replied, holding out his hand. 

"Oh yeah," Thibodeaux said, handing over the coins, "that does add up to $1.65. I wish there were an easy way to figure out if you have an exact monetary amount, given a set of coins." 

"Hmmm," Boudreaux shrugged, "sounds like a good programming problem." 

Input

Input to this problem will consist of a (non-empty) series of up to 100 data sets. Each data set will be formatted according to the following description, and there will be no blank lines separating data sets. 

A single data set has 1 component: 

Start line - A single line: 
A B C D E 

where: 
A: (0.01 <= A <= 5.00) is a decimal number (to two decimal places) of a monetary amount. 
B: (0 <= B <= 100) is an integer number of quarters (one quarter = $0.25). 
C: (0 <= C <= 100) is an integer number of dimes (one dime = $0.10). 
D: (0 <= D <= 100) is an integer number of nickels (one nickel = $0.05). 
E: (0 <= E <= 100) is an integer number of pennies (one penny = $0.01).

Output

For each data set, there will be exactly one line of output. If there exists one or more subsets of the given coins whose values add up to the given monetary amount exactly, the output will be a single line in the form: 

A B C D 

where A is the number of quarters, B is the number of dimes, C is the number of nickels, and D is the number of pennies, for the subset with the fewest number of coins. Otherwise, the output will be a single line with the statement: 
NO EXACT CHANGE 

Sample Input

0.45 2 1 1 4
0.75 3 7 1 75

Sample Output

NO EXACT CHANGE
3 0 0 0

Source




就是把钱放大100倍后看组合成all,种钱最少需要几张钱?

dp+记录路径,值得一提的是这个题也可以4个for循环过,但是还是感觉dp高大上一点吧


#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define N 1000

int num[5],dp[N],pre[N],all;
int op[5]={25,10,5,1};
int ans[N];

int main()
{
	int i,j;
	double x;
	while(~scanf("%lf",&x))
	{
		all=(int)(x*100);
		for(i=0;i<4;i++)
			scanf("%d",&num[i]);

		memset(dp,0,sizeof(dp));
		dp[0]=1;

		for(i=0;i<4;i++)
		{
			if(op[i]*num[i]>=all)
			{
				for(int v=op[i];v<=all;v++)
					if(dp[v-op[i]]&&(dp[v]==0||dp[v]>dp[v-op[i]]+1))
				{
					dp[v]=dp[v-op[i]]+1;
					pre[v]=v-op[i];
				}
			}
			else
			{
				int t=num[i];
				while(t--)
				{
					for(int v=all;v>=op[i];v--)
						 if(dp[v-op[i]]&&(dp[v]==0||dp[v]>dp[v-op[i]]+1))
						{
							dp[v]=dp[v-op[i]]+1;
							pre[v]=v-op[i];
						}
				}
			}
		}
		if(!dp[all])
		{
			printf("NO EXACT CHANGE\n");
			continue;
		}
		 memset(ans,0,sizeof(dp));
		 i=all;
		 while(i)
		 {
		 	ans[i-pre[i]]++;
		 	i=pre[i];
		 }
		 printf("%d %d %d %d\n",ans[25],ans[10],ans[5],ans[1]);
	}
	return 0;
}







保姆级教程:用MATLAB搞定运动模糊图片修复(附完整代码与避坑指南) 本文提供了一份详细的MATLAB运动模糊图片修复教程,涵盖盲复原、图像复原等核心技术。通过傅里叶变换和Radon变换分析模糊参数,对比逆滤波、维纳滤波和Lucy-Richardson算法效果,并附完整代码与避坑指南,帮助用户实现专业级图像处理。 阅读详情

相关推荐

3dsMax高效导入OSGB倾斜模型的3个关键步骤与插件应用

本文详细解析了在3dsMax中高效导入OSGB倾斜模型的三个核心步骤:建立索引、处理贴图路径以及选择合适的插件。针对导入过程中常见的模型崩溃、贴图丢失和操作卡顿问题,提供了从数据结构理解到插件选型的实战解决方案,帮助用户实现大规模实景模型在3dsMax中的流畅导入与编辑。

weixin_29238147的博客 468

poj 2581 Exact Change Only 枚举

View Code 1 #include <stdio.h> 2 3 int ar[5],a,b,c,d,m; 4 5 6 int solve() 7 { 8 for (d=0;d<=ar[4];d++) 9 {10 if(d>m)break;11 for (c=0;c<=ar[3];c++)1...

diaopi1575的博客 366

【新华三】通过路由复制实现Public与VRF路由互通

如上图所示,S6900设备里有两张表,一张是public路由表,默认所有的路由都存放在public路由表里;除此之外还创建了VRF test,因此此设备还有VRF test路由表。通过路由复制实现Public路由和VRF路由互通,默认情况下VRF里的路由单独一张路由表,默认情况下与public路由表相互隔离,两张表之间不可互访。此时的public路由表里面并没有test的路由表。public路由表与VRF路由表之间相互隔离。此时VRF test里的路由也没有其他VRF或Public里的路由,相互隔离。

五大连池的镜子 5278

HDU 1353 Exact Change Only

Exact Change Only Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 206    Accepted Submission(s): 64 Problem Description Boudreaux r

wust_ZJX的专栏 2559

售货机非现金支付开发指南:MDB协议下VPOS刷卡器的那些坑

本文深入探讨了MDB协议下非现金支付设备的开发实践,重点解析了NAYAX VPOS刷卡器的集成难点与解决方案。从RS232通信参数配置到Always idle功能实现,提供了一套完整的售货机支付系统开发指南,帮助开发者规避常见陷阱,提升设备兼容性与交易稳定性。

weixin_29258297的博客 134

【unity小技巧】实现FPS射击游戏枪武器随镜头手臂摇摆效果(2025/12/11补充)

如果我们视角移动转向,武器如果不跟着进行摇摆,会感觉我们的动作很生硬,特别是射击类游戏,如下实现武器摇摆这里主要分享两种实现方法,一种是改变武器位置,一种是修改武器旋转想要使用哪种方法都可以,看你自己喜欢,如果是我,我会选择第二种,比较简单,参数也少,而且个人感觉效果也更好,已枪中心做旋转更符合现实。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1470

zoj 2189 - Exact Change Only

题目:给你几种不同面值的货币,

小白菜又菜 1949

原理和代码解读:用Diffusion Models高清图像修复(Image Inpainting)

在最近的Diffusion Models应用中,Image Inpainting+ControlNet/Lora等工作在模特衣服生成、家居场景重建等场景中得到了广泛的应用。这篇博客主要介绍Diffusion Models如何在修复高清图像的。

沉迷单车的追风少年 2496

Exact Change(背包HDU2753)

Exact Change Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 545 Accepted Submission(s): 172 Problem Description * Seller: Tha...

weixin_30823001的博客 246

三态门Multisim电路仿真——硬件工程师笔记

三态门原理及应用摘要 三态门是具有高电平(1)、低电平(0)和高阻态(Z)三种输出的逻辑电路,通过使能端(EN)控制状态切换。高阻态时输出端等效断路,避免信号冲突。其核心应用包括: 总线系统:多设备共享总线时,仅使能选中设备的三态门,其余保持高阻态,防止干扰。 数据选择器:利用三态门切换多路输入信号,简化电路设计。 实现方式分两种: TTL三态门(三极管构成):低电平使能有效,仿真验证输出逻辑与高阻态。 MOS三态门(MOS管构成):高电平使能有效,仿真显示使能信号控制输出状态。 文中还附硬件工程师笔试面试

XU157303764的博客 2004

【Simulink教程案例7】基于Simulink的滑模控制器设计与实现

欢迎订阅滑膜控制是一种变结构控制策略,其和常规控制方法的主要区别在于控制的不连续性,即一种使系统结构随时间变化的开关特性。所以,滑膜控制器也叫做变结构控制器,其本质是一类特殊的非线性控制器,并且这种非线性为不连续性。滑膜控制器和其他控制方式最大的区别在于其结构的不固定性,在其工作过程中,系统当前的状态会发生变化,使得系统按照预先设置的“滑动模态”的状态轨迹运动。正是由于这个特点,滑膜控制器具有快速响应的优点。滑模控制的基本定义如下所示:1).穿越切换面上的某个点;2).从切换面上的某个点离开;

FPGA/MATLAB学习教程/源码/项目合作开发 3240

poj 2581 Exact Change Only (dp)

 Description Boudreaux reached over and shook awake Thibodeaux, who had dozed off somewhere in New Mexico. "Where we at?" Thibodeaux groggily yawned.  "Not in Vegas, I gua-ran-tee, but co

渭城朝雨浥轻尘 2260

cuRobo 入门教程(二)基于CUDA的机器人运动规划加速库

cuRobo是一款基于CUDA加速的机器人算法库,提供正向/逆向运动学、碰撞检测、数值优化等核心功能,支持在NVIDIA Jetson Orin等平台上实现毫秒级运动规划。该库创新性地采用并行轨迹优化技术,结合nvblox工具实现深度摄像头避障功能,并通过多层ESDF结构处理动态障碍物。性能测试显示,在RTX 6000 Ada显卡上可实现99.85%的成功率,平均规划时间仅39毫秒。cuRobo还提供Python API支持神经网络集成,并具备批量环境处理能力,特别适用于工业机器人应用场景。最新版本通过算法

2506_90492529的博客 1295

POJ 2581

题意:问四种价值硬币是否能凑够某个值,并输出用最少硬币的。(硬币有个数限制) 题解:多重背包,先将要凑成的小数化为整形即可。 View Code 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 using namespace std; 5 int dp[7...

weixin_30437847的博客 132

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

FCC----------- Exact Change

设计一个收银程序 checkCashRegister() ,其把购买价格(price)作为第一个参数 , 付款金额 (cash)作为第二个参数, 和收银机中零钱 (cid) 作为第三个参数. cid 是一个二维数组,存着当前可用的找零. 当收银机中的钱不够找零时返回字符串 “Insufficient Funds”. 如果正好则返回字符串 “Closed”. 否则,返回应找

奋斗在路上 979

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Exact Change

Exact Change Problem C: Exact Change Seller: That will be fourteen dollars. Buyer: Here's a twenty. Seller: Sorry, I don't have any change. Buyer: OK, here's a ten and a five. Keep the change.

xuehuhu1的专栏 870

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

hdu 4158 hoj 2581 Go 简单搜索

这是一个简单搜索题,思想是floodfill的思想 扫描整张图,找到一个空白点时开始搜索,不断累加空白点数,用变量flag来保存他被什么颜色的子围着(状态压缩),当遇到棋子的时候,判断flag变量是否已经被更新过,如果没有更新过,说明之前不知道这部分空白被什么颜色的棋子围住了,所以对flag直接更新即可,如果flag非0,即被更新过,则判断当前碰到的颜色的子和我之前碰到的是否相同,用位运算&即可

renew 939

Exact Change FreeCodeCamp

function checkCashRegister(price, cash, cid) { var change; var sumCid = 0; // Here is your change, ma'am. //找零(change),付款(cash),购买价格(price),收银机中零钱(cid) change = cash - price...

198

FCC 算法 Exact Change

这个任务挺有趣的,贴近生活设计一个收银程序 checkCashRegister() ,其把购买价格(price)作为第一个参数 , 付款金额 (cash)作为第二个参数, 和收银机中零钱 (cid) 作为第三个参数.cid 是一个二维数组,存着当前可用的找零.当收银机中的钱不够找零时返回字符串 "Insufficient Funds". 如果正好则返回字符串 "Closed".否则, 返回应找回的...

青菜陪白豆腐的博客 387

FCC高级编程篇之Exact Change

Exact Change Design a cash register drawer function checkCashRegister() that accepts purchase price as the first argument (price), payment as the second argument (cash), and cash-in-drawer (cid) as t...

weixin_30522095的博客 348

【Vegas转帖】关于云计算 - Larry Ellison and Scott McNealy

关于云计算,在2008 Oracle Open World大会上,Larry Ellison已经发表了一番精彩的言论。 Larry言及:"有趣的是,云计算概念已经被我们扭曲了,现在的云计算概念几乎包括了我们要做的一切。你甚至找不到一家不宣称自己是云计算的。计算机行业是唯一一个比女性时装界还要追逐概念和潮流的行业。也许我是个笨蛋,但是我真的搞不懂他们在说些什么。到底什么是云计算呢?完全是胡扯。这很...

weixin_34176694的博客 162

poj 3085 Quick Change

Quick Change Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 4756 Accepted: 3491 Description J.P. Flathead’s Grocery Store hires cheap labor to man the che...

weixin_30375427的博客 168

Exact Change(FCC高级算法)

设计一个收银程序 checkCashRegister() ,其把购买价格(price)作为第一个参数 , 付款金额 (cash)作为第二个参数, 和收银机中零钱 (cid) 作为第三个参数. cid 是一个二维数组,存着当前可用的找零. 当收银机中的钱不够找零时返回字符串 "Insufficient Funds". 如果正好则返回字符串 "Closed". 否则, 返回应找回的零钱...

dichou6057的博客 243

somewhere i belong

When this began I had nothing to say And I'd get lost in the nothingness inside of me I was confused And I'd let it all out to find That I'm not the only person with these things in mind Inside ...

趋势创造者-一直在努力,拥抱大海,拥抱浩瀚的天空,探知未来的世界 祗偽妳動訫 Happiness keeps you Sweet 198

向eygle学习

DBA的工作职责是什么?每天DBA应该做哪些工作?稳定环境中的DBA该如何成长与工作? 这是很多人都曾经提出过的问题,我潦潦草草的、随心所欲的记录一下我的观点和建议,供参考: 1.实时监控数据库告警日志这是必须进行的工作...

congqingm32098的博客 283
上一篇: Hot Days Codeforces Round #132 (Div. 2) D(贪心)
下一篇: HDU 1595find the longest of the shortest(spfa)
左眼皮跳跳~
博客等级 码龄13年 17粉丝 400原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值