loj2278. 「HAOI2017」字符串

2278. 「HAOI2017」字符串

给出一个字符串 sn 个字符串 pi,求每个字符串 pis 中出现的次数。注意这里两个字符串相等的定义稍作改变。

给定一个常数 k,对于两个字符串 a,b,如果 a=b,那么满足:

1. |a|=|b|
2. 对于所有 aibi 以及 ajbj,满足 |ij|<k

如果 |a|=|b|k,那么认为 a=b

 


写在前面:注意!!这题我还没有调出来!

因为这是一道多模板串题,我们考虑AC自动机。

它的要求相当于中间可以有一段长度为k-1的不匹配,其他都要匹配。

那么我们吧所有p的正串建AC自动机,反串也建AC自动机。

对于一个节点x,假设它匹配到了某个串的第j位,对应的反串应该要匹配那个串的后j+k+1位。

那么我们记录下反串j+k+1的节点是哪一个,当成询问挂在x上。

我们在把s拿去跑AC自动机,同样把对应的j与j+k+1记录下来。

统计的时候相当于把j+k+1的位置+1,询问子树和。

有一个容斥我没有想的很清楚,先咕着

 

posted @   liankewei123456  阅读(256)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示