QOJ5256 [CERC2022] H. Insertions 题解
题意:
给定字符串 ,求将 插入进 之后 最多的出现次数。输出:
- 最多的出现次数;
- 达到这个最多出现次数的插入位置数量;
- 达到这个最多出现次数的最靠前的插入位置;
- 达到这个最多出现次数的最靠后的插入位置。
数据范围:。
题目要我们求的信息量很大,不妨直接求出在每个位置插入 之后 的出现次数。
设将 插入之后 前后两部分为 。
讨论 出现的位置情况:
- 完全包含于 :可以直接 KMP 预处理。
- :求出所有长度 满足 长度为 的前缀和 长度为 的后缀匹配。建出 匹配 的失配树,把所有编号为 的节点打上标记,在 后插入 得到的形如 的匹配数量就相当于失配树上 匹配 的最长前缀的所有祖先的标记和。
- :将 、、 全部翻转,再做一遍 的过程。
- :求出所有 在 中的匹配位置 ,然后就相当于统计有多少位置 满足 且 。求出 匹配 的最长前缀长度和 匹配 的反串的最长匹配长度,设为 ,那么就是问有多少个 满足 在正串失配树上是 的祖先且 在反串失配树上是 的祖先。这是一个二维数点问题,可以离线扫描线 + 树状数组完成。
注意树状数组上界要开到 ……因为节点数是最大编号 ……
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
2022-03-08 ABC234 G & H 题解
2022-03-08 ABC233 G & H 题解