随笔分类 -  字符串_manacher

摘要:【题目大意】 输入长度为n的串S,求S的最长双回文子串T,即可将T分为两部分X,Y,(|X|,|Y|≥1)且X和Y都是回文串。 【思路】 首先普通地求manacher,然后求出以每个位置为左端点和右端点的最长回文串长度l[i]和r[i]。 l[i]=max{2*(j-i+1)-1}(j+p[j]-1 阅读全文
posted @ 2016-08-09 10:08 iiyiyi 阅读(187) 评论(0) 推荐(0)
摘要:【题目大意】 求最长回文队伍且队伍由中间向两边递减。 【思路】 和字符串一样的做法,在递推的时候增加判断条件:a[i-p[i]]<=a[i-p[i]+2]。 阅读全文
posted @ 2016-08-08 21:18 iiyiyi 阅读(275) 评论(0) 推荐(0)
摘要:【题目大意】 给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度。 【manacher知识点】 ①mx - i > P[j] 的时候,以S[j]为中心的回文子串包含在以S[id]为中心的回文子串中,由于 i 和 j 对称,以S[i]为中心的回文子串必然包含在以S[i 阅读全文
posted @ 2016-08-07 19:03 iiyiyi 阅读(200) 评论(0) 推荐(0)