ABC303 G 题解
区间 DP。
设
然后对三种情况分别讨论:
-
使用操作一,此时取掉左/右端点的部分先手后手互换,对答案的贡献为
。 -
使用操作二,继续分讨:
:直接全部取走,贡献为 。 :考虑将 的长度分配给前缀和后缀,贡献为 。
-
操作三同理:
:直接全部取走,贡献为 。 :考虑将 的长度分配给前缀和后缀,贡献为 。
然后对上述贡献取
用前缀和维护一下即可做到
考虑优化。容易发现,此时操作一、操作二和操作三的第一种情况复杂度都是对的。只有操作二、操作三的第二种情况需要枚举长度,时间复杂度
考虑对
这个时候我们发现
现在考虑维护后面这坨东西。
容易发现,
然后直接用 ST 表维护
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库