manacher 和 扩展KMP

事实上,这两个东西是一样的。


考虑 manacher 的过程

我们实时维护最远扩展的位置 \(mx\) 以及这个回文串的回文中心 \(l\) ,那么显然当然位置如果没有超过 \(mx\)

,是可以利用与 \(l\) 的对称位置 \(2l-i\) 的信息的,然后判断一下是否可以延伸 \(mx\) 的位置

  • 也可以出一些有意思的东西

    给你一个长为 \(n\) 的串的 \(2n+1\) 的回文数组 \(pa\) ,求哪些字符是相等的。

    拿并查集维护的话,有一种类似于萌萌哒那个题倍增做法,但是多一个 \(\log\)

    但是如果考虑 manacher 的过程,其实本质不同的相等位置只会在 \(mx\) 扩展的时候出现,就可以优化掉这个 \(\log\)


考虑 扩展KMP

给你 \(s,t\) ,要求你求出 \(t\) 与 \(s[i,n]\) 的所有 \(lcp\)

其实可以转换到求 \(s[i,n]\) 与 \(s[1,n]\) 的 \(lcp\)

同样维护 \(lcp\) 最远扩展的位置 \(mx\) 以及这个 \(lcp\) 的起始位置 \(l\) ,那么当前如果没有超过\(mx\) ,位置 \(i\) 可以利用 \(i-(l-1)\) 与 \(s\) 的 \(lcp\) ,并判断是否可以扩展

可以发现和上面是一个东西的,写起来也差不多

最新文章

  1. Container View 使用小技巧
  2. svg坐标系变换
  3. 自引用指针this
  4. Linux有用命令
  5. Jocket
  6. 物联网操作系统Hello China V1.76(PC串口版)版本发布
  7. 49. Anagrams
  8. 函数重载二义性:error C2668: 'pow' : ambiguous call to overloaded function
  9. C# 语言规范_版本5.0 (第13章 接口)
  10. Delphi2010生成GB2312字库乱码问题
  11. java中基本类型占用字节数
  12. IBM的websphere MQ的c#使用(一)
  13. 前端面试题之css
  14. Oracle数据csv导入
  15. 包建强的培训课程(2):Android与设计模式
  16. 结构型---装饰者模式(Decorator Pattern)
  17. G2( bizCharts ) React 绘制混合图例
  18. mysql允许所有机器访问
  19. S5PV210的根文件系统制作
  20. AWS CSAA -- 04 AWS Object Storage and CDN - S3 Glacier and CloudFront(三)

热门文章

  1. crazyflie四轴飞行器
  2. 关于Vue+iview的前端简单的导入数据(excel)
  3. 微信小程序这一块(上)
  4. 《JAVA设计模式》之策略模式(Strategy)
  5. [Linux] 018 关机重启命令
  6. CCNA 之 二 OSI七层模型
  7. 断路器,AOP实现断路器模式 ------------Hystrix
  8. 6、numpy——高级索引
  9. hdu6354 Everything Has Changed (圆的相交弧长)
  10. Spark链接hive时 “HikariCP” 问题