线段树维护哈希
显然两个区间的哈希值是可以合并的,所以线段树可以维护区间的哈希值。
设左儿子的长度和哈希值分别为 ,右儿子的长度和哈希值分别为 ,合并后的长度为 ,哈希值为 。
1. CF213E Two Permutations
枚举 的值区间 ,令 ,那么我们需要判断 在原排列里构成的子序列的哈希值是否与排列 整体加 的哈希值相等。类似滑动窗口,每次添加、删除一个数,然后维护整个序列的哈希值即可。
2. CF452F Permutation
判断序列里是否存在一个子序列是三元等差数列,可以枚举中间项 ,如果存在公差 使得 在序列中出现在 的异侧就是 YES
,否则就是 NO
。但是直接枚举 是 的。
可以考虑优化掉枚举公差 的过程。从小到大枚举 ,维护一个 01
串表示 是否出现过,那么如果串不是回文的就表示存在一个 满足 出现过而 没出现过,符合判定条件。于是直接线段树维护即可。
3. P2757 [国家集训队]等差子序列
显然若存在 的等差子序列,那么一定存在 的等差子序列。剩下就是 CF452F 了。
4. P4696 [CEOI2011] Matching
将 离散化后枚举子串,剩下就是 CF213E 了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App