[BZOJ2342][Shoi2011]双倍回文 试题描述 输入 输入分为两行,第一行为一个整数 n,表示字符串的长度,第二行有 n 个连续的小写的英文字符,表示字符串的内容。 输出 输出文件只有一行,即:输入数据中字符串的最长双倍回文子串的长度,如果双倍回文子串不存在,则输出0。 输出文件只有一行 ...
分类:
其他好文 时间:
2017-02-11 14:45:16
阅读次数:
178
Sol Manacher. 非常裸的Manacher啊...为什么有那么多人写Manacher+并查集?Set?Treap?...好神奇... 你只需要在 \(p[i]++\) 的位置加上判断就可以了,不需要任何数据结构维护答案... 你要保证两个点都在'#'字符上就可以了... Code ...
分类:
其他好文 时间:
2016-09-08 20:08:11
阅读次数:
122
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2342 思路:先跑一遍Manacher求出p[i]为每个位置为中心的回文半径,因为双倍回文串的长度一定是4的倍数,即偶数,那么对于Manacher的回文中心一定是'#'字符。所以我们枚举每个' ...
分类:
其他好文 时间:
2016-06-21 10:53:41
阅读次数:
137
【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=2342 【题意】 求出形如w wR w wR的最长连续子串。 【思路】 用manacher算法计算出p[],表示以i与i+1为中心的最长回文字串长度/2 枚举第一个wR的结束位置x,当且仅 ...
分类:
其他好文 时间:
2016-04-03 00:13:36
阅读次数:
242
题解:Manacher处理出回文半径,然后知道一个回文串后就可以知道两边的回文中心,然后O(1)check是否合法,即判断两边中心的回文半径。
这里需要枚举每一个位置的回文半径,因为比如这个
18
abbbaabbbaccddddcc
ccddddcc就不是双倍回文,但是它中间有个dddd是双倍回文,如果每个回文只check最长的是不是双倍回文,就会WA在这里。
所...
分类:
其他好文 时间:
2014-12-28 14:19:26
阅读次数:
158
2342: [Shoi2011]双倍回文Time Limit: 10 SecMemory Limit: 128 MBSubmit: 923Solved: 317[Submit][Status]DescriptionInput输入分为两行,第一行为一个整数,表示字符串的长度,第二行有个连续的小写的英文...
分类:
其他好文 时间:
2014-11-12 19:30:14
阅读次数:
316