Loading

P14363 [CSP-S 2025] 谐音替换 / replace

场上将 \(O(qn \log n)\) 分析成了 \(O(q \log n)\) 也是没谁了。

考虑到能替换的条件就是从第一个不一样的位置到最后一个不一样的位置中间完全一致,然后左右分别满足相同的条件即可,我们将其哈希值扔进 map 里对每个等价类做一遍可以做到 \(O(qn\log n)\)

然后考虑剩下的步骤相当于左右两边拿出来,要满足前缀和后缀的限制,将前面的串翻转插入 trie,相当于就是求两条祖先链上编号的交,我们 BFS 第一棵 trie,由于总串长一定,我们暴力枚举第二棵 trie 即可,将 map 换成 unordered_map 可以做到 \(O(L + n)\) 的复杂度。

不知道 AC 自动机是咋做的。

posted @ 2025-11-06 15:01  Alexande  阅读(19)  评论(0)    收藏  举报