HDU - 3591 The trouble of Xiaoqian 题解
题目大意
有 \(N\) 种不同面值的硬币,分别给出每种硬币的面值 \(v_i\) 和数量 \(c_i\)。同时,售货员每种硬币数量都是无限的,用来找零。
要买价格为 \(T\) 的商品,求在交易中最少使用的硬币的个数(指的是交易中给售货员的硬币个数与找回的硬币个数之和)。
个数最多不能超过 \(20000\),如果不能实现,输出 \(-1\);否则输出此次交易中使用的最少的硬币个数。
样例
有 \(3\) 种硬币,面值分别为 \(5, 25 50\),个数分别为 \(5, 2, 1\),要买 \(70\) 的商品,不存在给小费的情况下,最少的硬币个数为 \(3\)。
自己使用 \(25\) 和 \(50\) 各一个,找回一个面值为 \(5\) 的硬币。
分析
- 这个问题在普通背包的基础上,加入了找零的情况,很显然,如果自己拥有的硬币,即使恰好能购买商品,也不一定是使用硬币最少的,例如样例中,自己恰好买的话,使用硬币数为 \(4\),即 \(5\) 的 \(4\) 个,\(50\) 的 \(1\) 个,共 \(5\) 个。
- 既然要求最后支出 \(pay_{T+i}\) 与找回 \(back_i\) 的硬币总和最少,即求 \(\min\{pay_{T+i} + back_i\}\)。
- 对于样例来说,我们还需要考虑:
- 付 \(75\) 使用的个数 + 找 \(5\) 的个数
- 付 \(80\) 使用的个数 + 找 \(10\) 的个数
- ...
- 其中有些数是达不到的,因此需要加判断。
- 我们可以对自己的硬币跑多重背包,最大容量为 \(20000\),\(pay_i\) 表示恰好付钱为 \(i\) 的时候所需要的最好硬币个数;对售货员跑完全背包,\(back_i\) 表示找回 \(i\) 所需要的的最少硬币个数。最后扫一遍,最小化 \(\min\{pay_{T+i} + back_i\}\)。
部分代码
还没顾上写;
HDU - 3591 The trouble of Xiaoqian 题解的更多相关文章
- hdu 3591 The trouble of Xiaoqian
hdu 3591 The trouble of Xiaoqian 题意:xiaoqi要买一个T元的东西,当前的货币有N种,xiaoqi对于每种货币有Ci个:题中定义了最小数量即xiaoqi拿去买东西 ...
- HDU 3591 The trouble of Xiaoqian(多重背包+全然背包)
HDU 3591 The trouble of Xiaoqian(多重背包+全然背包) pid=3591">http://acm.hdu.edu.cn/showproblem.php? ...
- HDU 3594 The trouble of Xiaoqian 混合背包问题
The trouble of Xiaoqian Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/ ...
- HDU 3591 (完全背包+二进制优化的多重背包)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3591 The trouble of Xiaoqian Time Limit: 2000/1000 M ...
- The trouble of Xiaoqian
The trouble of Xiaoqian Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Oth ...
- hdu 3591 多重加完全DP
题目: The trouble of Xiaoqian Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (J ...
- HDUOJ-----3591The trouble of Xiaoqian
The trouble of Xiaoqian Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/ ...
- 【hdu 3177 Crixalis's Equipment】 题解
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3177 \(describe\): 有一个山洞,山洞的容积最大为\(v\).现在你有\(n\)个物品,这 ...
- HDU 2072(单词数)题解
以防万一,题目原文和链接均附在文末.那么先是题目分析: [一句话题意] “就是统计一篇文章里不同单词的总数”(已经是一句话了..) [题目分析] 明显需要去重,上set,因为按行分析,又没有EOLN用 ...
随机推荐
- 前后端分离产生的跨域问题的解决方案之--jsonp、nginx代理、设置头信息等
前言 在前后端没有分离的时候,前端开发要么是写静态页面,数据渲染后端来做,要么就是前端的页面和后端的代码刚开始的时候就合并在一起,每次后端代码更新了之后,前端也要更新一下代码,然后重启一下服务,还是比 ...
- Nodejs模块介绍
1.模块系统 require:引入模块,返回一个对象 module:指代当前的模块对象 module.exports:当前模块的导出对象 exports:指代module.exports __file ...
- 201771010117—马兴德—实验一 软件工程准备—掌握博客中MarkDown的使用以及通读《现代软件工程—构建之法》的总结
实验一 软件工程的前期准备工作 在前期的准备工作以及老师上课的讲解中,我懂得了"软件=程序+软件工程"这句话的基本含义,以前只是对软件工程有一个很浅显的概念,现在在读了<现代 ...
- 【漫画】ES原理 必知必会的倒排索引和分词
倒排索引的初衷 倒排索引,它也是索引.索引,初衷都是为了快速检索到你要的数据. 我相信你一定知道mysql的索引,如果对某一个字段加了索引,一般来说查询该字段速度是可以有显著的提升. 每种数据库都有自 ...
- Hystrix入门
hystrix对应的中文名字是“豪猪”,豪猪周身长满了刺,能保护自己不受天敌的伤害,代表了一种防御机制,这与hystrix本身的功能不谋而合,因此Netflix团队将该框架命名为Hystrix,并使用 ...
- Excel_通过单元格的值来引用以单元格值命名的sheet
1.通过单元格的值来引用以单元格值命名的sheet,在做多个类似sheet的统计结果时效率比较高 当一项测试中有很多个模块,每个模块中有很多条测试用例 将以上测试用例整理在Excel中,每个模块一个s ...
- 干货 | Kafka 内核知识梳理,附思维导图
前面我们已经分享过几篇Kafka的文章,最近简单梳理了下Kafka内核相关的知识,涵盖了Kafka架构总结,副本机制,控制器,高水位机制,日志或消息存储,消息发送与消费机制等方面知识.文末含对应的Ka ...
- PHP 获取当前目录下的所有文件
我们有时候会想拿到当前目录下的所有文件名,以下就是我写的一个方法,请大家参考 // 获取当前文件的上级目录 $con = dirname(__FILE__); // 扫描$con目录下的所有文件 $f ...
- PHP 操作结果集对象方法
<?php header('Content-type:text/html;charset=utf-8'); //建立 或者 关闭mysql服务器 @符号用于屏蔽错误信息 $link=@mysql ...
- 【Mac+Wind7】pytest + allure生成定制报告
一.升级Powershell(windows7及以上版本默认自带.其实普通的CMD命令行工具够用了) 我是Win7默认带的pw1.0,太古老了升级一下,地址如下,选择与自己windows版本匹配的连接 ...