好题记录 [集训队互测 2023] 优惠购物 题解
首先发现这个过程的限制比较多,那么考虑重新描述这个过程。
令
方便起见,令
考虑合法的
要满足的条件:
最后的答案为
先考虑所有
基于
- 前
张,此时使用优惠券不影响 - 每次操作使
减 1 并使 加 - 使
减 1 并使 加
为了方便考虑,设
接下来再次考虑每种操作造成的影响。
对
- 使
全部减 , 加 - 使
减 ,使 减 ,使 加 - 假设使
加 ,那么会使 减 ,使 减
发现:
- 显然操作 2 优于操作 3,且操作 1 优于其余两个(因为相同情况下影响一定完全小于其余操作)。
- 为了进行最多次的操作 1 可以从右往左扫一遍。
- 为了进行最多次的操作 2 也可以从右往左扫一遍。
那么我们考虑动态维护
对于操作 1,
对于操作 2,
(我的正解的操作 3 部分的代码写得很丑陋,大概看一下就行。)
对于操作 3,考虑最优策略按能使用的券的张数从大到小,那么我们可以直接暴力模拟,
发现
可以看一下暴力模拟的代码,正解用某些方式优化了其中的过程。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
2023-11-12 Tenzing and Random Operations CF1842G 题解