Description Input 输入分为两行,第一行为一个整数,表示字符串的长度,第二行有个连续的小写的英文字符,表示字符串的内容。 输入分为两行,第一行为一个整数,表示字符串的长度,第二行有个连续的小写的英文字符,表示字符串的内容。 Output 输出文件只有一行,即:输入数据中字符串的最长双 ...
分类:
其他好文 时间:
2017-05-16 21:40:20
阅读次数:
205
题目链接:双倍回文 回文自动机第二题。构出回文自动机,那么一个回文串是一个“双倍回文”,当且仅当代表这个串的节点\(u\)顺着\(fail\)指针往上跳,可以找到一个节点\(x\)满足\(2len_x=len_u\)。当然还需要\(len_u\)是\(4\)的倍数。 然后我们把\(fail\)树构出 ...
分类:
其他好文 时间:
2017-03-09 19:50:28
阅读次数:
220
[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 【题意】 求出形如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