首页 > 其他 > 详细

Gym101237C The Palindrome Extraction Manacher

时间:2020-05-02 21:29:17      阅读:31      评论:0      收藏:0      [点我收藏+]

题意

给定字符串\(S\),分段\(S=A+B+C+D+E\)\(A,B,C,D,E\)可以为空串。要求方案\(B+D\)为回文串,且\(|B+D|\)最大

做法

假设\(|B|>|D|\),则\(B=rev(D)+T\)\(T\)为某回文串
跑manacher,对于一组\([l,i,r]\),就是找\(S_{1,l-1}\)的一组最长后缀使得其在\(S_{r+1,n}\)作为子串出现

具体做法就是对于\(rev(S)\)就SAM,然后\(S\)的每个前缀在上面定位,对于\([l,i,r]\),令\(pre_{l-1}\)为在后缀树上的定位,然后一直往上爬直到走到原来的\(S_{r+1,n}\)内部

题外话

好久没写SAM了,复习一下,看懂了多一点原理

Gym101237C The Palindrome Extraction Manacher

原文:https://www.cnblogs.com/Grice/p/12819462.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!