[NOI2007] 货币兑换

news/2025/1/15 14:50:45/文章来源:https://www.cnblogs.com/YzaCsp/p/18673006

前言

想起之前一道叫股票的题, 也是这么长的题面, 不过事已至此, 先读题吧

最近这么菜一定要记住每日一练和 \(\rm{whk}\)

思路

首先直觉是比例不好处理, 肯定是要转化的

发现最后写了一句

必然存在一种最优的买卖方案满足:
每次买进操作使用完所有的人民币, 每次卖出操作卖出所有的金券


有这个性质明显更好做, 每次可以钦定 \(OP = 100\) , 但是为什么呢, 考虑证明
你发现每次买入相当于对 \(num_A, num_B\) 的比例进行调整, 每次卖出相当于按照这个比例和 \(A_k, B_k\) 的比例赚钱
形式化的来讲, 买入相当于

\[rate = \frac{num_A}{num_B} \to \frac{num_A + \frac{Rate_k IP}{Rate_kA_k + B_k}}{num_B + \frac{IP}{Rate_kA_k + B_k}} \\ \ \\ num_B \gets num_B + \frac{IP}{Rate_kA_k + B_k} \]

卖出相当于

\[\begin{align*} profit & = (num_A A_k + num_B B_k) \times OP\% \\ & = num_B (A_K rate + B_k) \times OP \% \end{align*} \]

一次能赚钱, 显然是要把 \(A_k, B_k\) 全部甩出去赚的最多, 买入同理

你可以当我没有证明, 我自己也看不懂


考虑现在怎么做
你发现, 如果把 \(N\) 天分成 \(k\) 段由买入和卖出组成的时间区间 \([l, r]\) , (注意 \(l = r\) 是非法的; 同天内只考虑先卖再买, 不然没有意义) , 我们可以考虑 \(\rm{dp}\)

\(f_i\) 表示对于以 \(i\) 结尾的分段, 最优的利润 (也就是手上还有多少钱)
也就是说买 \(A, B\) 的数量为

\[x_i=\dfrac{f_iRate_i}{A_iRate_i+B_i} \\ \ \\ y_i=\dfrac{f_i}{A_iRate_i+B_i} \]

容易写出柿子

\[\begin{align*} f_i \gets \begin{cases} f_i=\max(f_i,f_{i-1}) \\ f_i=\max a_ix_j+b_iy_j \end{cases} \end{align*} \]

考虑第二个柿子怎么处理
你发现这种跟 \(i, j\) 都有关的东西, 拆一下转化成斜率优化的形式即可

注意 \(x\) 可能是小数, 考虑离散化

总结

斜率优化类问题常见的区间划分, 一般来说, 买卖问题这种两点型问题, 时间区间划分很常见

遇到小数可以考虑离散化

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/869620.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电商小年营销全攻略:从策略到执行的全方位指南

电商小年营销需要从了解消费者需求、营造节日氛围、创新营销活动、社交媒体营销、优化物流配送以及提供优质服务等方面入手,全面提升营销效果和消费者体验。电商小年营销是针对小年这一传统节日进行的电子商务推广活动。小年作为春节的前奏,具有浓厚的节日氛围和独特的消费习…

TangGo:国产化综合红队协同工具

免责声明 请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与本公众号无关。最近我们团队在进行hvv演练的时候,我真切体会到了在日常工作中对高效工具的需求,找到一款合适的测试平台简直是事半功倍。 后面用了TangGo测试平台。这款工具真是让我省心不少。之前…

电商新年采购管理:优化策略与工具应用

电商新年用品采购管理是一个复杂而细致的过程,需要公司多个部门的协同合作和共同努力。通过科学的管理方法和工具的应用,可以提高采购效率、降低采购成本、确保商品质量,从而提升公司的竞争力和市场地位。电商新年用品采购管理是一个涵盖多个环节和方面的综合性工作,以下是…

输出Hello word

输出Hello word打开Notepad++文档,方便书写代码新建一个java文件编写代码 public class hello{public static void main (String[] args){ //格式固定的标题头System.out.print("hello word"); //输出的内容} }在cmd中编译javac …

如何管理研发进度拖延?中小科技企业适用的工具推荐

在科技行业蓬勃发展的当下,中小型科技企业面临着激烈的市场竞争。对于它们而言,研发流程的高效性直接关乎企业的生存与发展。敏捷方法作为一种灵活且高效的项目管理理念,正逐渐成为众多企业优化研发流程的关键选择。通过实施敏捷方法,企业能够快速响应市场变化,提升产品质…

招行面试:10Wqps场景,RocketMQ 顺序消费 的性能 如何提升 ?

本文原文链接 文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录 博客园版 为您奉上珍贵的学习资源 : 免费赠送 :《尼恩Java面试宝典》 持续更新+ 史上最全 + 面试必备 2000页+ 面试必备 + 大厂必备 +涨薪必备 免费赠送 :《尼恩技术圣经+高并发系列PDF》 ,帮你 …

Emacs 折腾日记(九)——elisp 数组与序列

elisp 中序列是数组和列表的统称,序列的共性是内部数据有一个先后的顺序,它与C/C++ 中有序列表类似。 elisp 中的数组包括向量、字符串、char-table 和布尔向量,它们的关系如下:在之前一章中已经介绍了序列中的一种类型——列表,本篇将介绍序列中的另外一种数据类型——数组…

DolphinScheduler项目管理页面加载缓慢?这样优化

问题现象 有时候,Apache DolphinScheduler项目管理页面会发生加载不出来的问题,浏览器查看为[http://ip:12345/dolphinscheduler/projects?pageSize=10&pageNo=1&searchVal=]请求超时。解决思路查看海豚运行日志(未发现异常)tail /home/dolphinscheduler/api-serv…

jenkins集成多版本maven打包

默认版本maven和jdkmvn高版本部署1.用低版本的mvn和jdk编译高版本项目的时候提示错误2.查看项目的pom.xml文件查看项目依赖的jdk版本3.部署高版本maven和jdk1.部署jdk1.172.部署maven-3.9.93.修改maven的jdk版本4.修改maven的依赖包仓库地址5.jenkins调用新的maven打包,不影响原…

如何解决使用 SQL Server 管理器远程操作数据库时出现“索引超出了数组界限 (Microsoft.SqlServer.Smo)”错误?

问题描述 当您使用 SQL Server Management Studio (SSMS) 远程连接并操作数据库时,可能会遇到以下错误提示:“索引超出了数组界限 (Microsoft.SqlServer.Smo)”。这个错误通常发生在尝试执行某些特定操作(如查询、修改表结构等)时。该问题不仅影响工作效率,还可能导致数据…

如何处理wdcp控制面板内phpMyAdmin无法访问的问题

用户反馈其wdcp控制面板内的phpMyAdmin无法正常访问,尽管已经修改了密码,但仍提示错误。这可能是由于权限设置错误、配置文件损坏或其他服务器配置问题引起的。 解决方案确认登录凭据确认当前使用的用户名和密码是否正确。如果不确定密码是否正确,可以尝试通过找回密码功能重…

如何处理网站内容被删除并恢复数据库文件的问题

用户反馈其网站内容被删除,希望恢复特定日期(如4月13日)的数据库备份文件。这可能是由于恶意攻击、误操作或其他未知原因引起的。 解决方案确认备份情况登录到托管服务提供商的管理面板,查看是否有可用的备份文件。特别关注指定日期(如4月13日)的备份。 如果发现备份文件…