【做题记录】CF521D Shop
-
- 算法:贪心
题目:
一个长度为 的正整数序列 。
有 个操作,每个操作给定正整数 ,三种类型:
-
,将 赋值为 ;
-
,将 加上 ;
-
,将 乘以 。
你可以从 个操作中选择最多 个操作,并按照一定顺序执行。
最大化 的值。
。
题解:
首先乘法运算是简单的,因为求 ,而乘法与顺序、位置无关。所以考虑加法、赋值。
赋值显然是可以看成一种加法。
那么考虑转化加法。
显然存在最优方案:先赋值再加法再乘法。
假设不存在赋值操作, 那么每个位置的执行的加法必然是 最大的几个。那么按 排序,得到的 将是有序的。那么每个加法执行位置有序。
令当前加法的前一个加法加 ,后一个加法加上 ,那么当前加法就等同于乘上 。
那么赋值就可以转化为加法后再转为乘法。注意加法是对赋值有影响,所以不能直接转换。
时间复杂度 。
本文作者:trsins
本文链接:https://www.cnblogs.com/trsins/p/15815359.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步