Manacher
Cold_Chair
我XXX就是饿死,死外边,从这里跳下去,也不会再做你九条可怜一个测试点
展开
-
JZOJ 2682 【WC2012选拔12.17】最长双回文串
顺序和逆序读起来完全一样的串叫做回文串。比如acbca是回文串,而abc不是(abc的顺序为“abc”,逆序为“cba”,不相同)。 输入长度为n的串S,求S的最长双回文子串T,即可将T分为两部分X,Y,(|X|,|Y|≥1)且X和Y都是回文串。 对于100%的数据,$2≤|S|≤10^5$。原创 2017-09-07 18:56:38 · 371 阅读 · 0 评论 -
【GDOI2017模拟9.21】妮厨的愤怒
题目大意:给出一个长度为n的字符串S,Q个询问,每次给出l,r,求S的第l位到第r位的最长回文子串。 (1<=n,Q<=10^5)题解:记得以前做过一道很像的题。 是YJL的题,二维RMQ,对于每一个查询也是二分答案。不说了,首先添加特殊字符,manacher求出r。 对于每一个询问,二分答案,于是我们得到了可能的回文中心的范围,RMQ查询区间最大值,判一下即可。Code:#include<c原创 2017-09-08 20:28:46 · 450 阅读 · 0 评论 -
Manacher模板
联赛要到了,去复习字符串算法,发现马拉车我竟然从来没有打过,o(╯□╰)omanacher是用来求字符串最长回文子串的一个算法。一般处理回文串问题,为了避免复杂的讨论,都需要在每一个字符后加上特殊字符。 比如原串是:abcba,加上@后就变成了a@b@c@b@a@。算法流程:设rir_i表示以i为回文中心,最长能往左右延伸的距离(包括自己)。例如,串aba中,r2=2r_2 = 2。从左往右匹配,原创 2017-09-06 22:06:57 · 366 阅读 · 0 评论 -
口胡 2018.03.10【GDOI2018】模拟A组
那天我去了象征自由的组别,没有做这个组,但是这个组的题目还是很有意思的。 看了之后有很大启发,所以写一下。 T1【NOI2015模拟12.27】str: Description: 第一问一看是个回文自动机的裸题。 但是你发现第二问用回文自动机有点难搞。 转换后相当于把一棵trie反过来求第k大。 因为后缀自动机的fail边是原串反向前缀树。 于是可得广义后缀自动机得fa...原创 2018-03-16 12:24:49 · 357 阅读 · 0 评论