2342: [Shoi2011]双倍回文 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 3787 Solved: 1472 [Submit][Status][Discuss] Description Input 输入分为两行,第一行为一个整数,表示字 ...
分类:
其他好文 时间:
2018-03-28 11:05:04
阅读次数:
193
Description "题库链接" 记一个字符串为 $X$ ,它的倒置为 $X^R$ 。现在给你一个长度为 $n$ 的字符串 $S$ ,询问其最长的形同 $XX^RXX^R$ 的子串长度为多少。 $1\leq n\leq 500000$ Solution 显然求回文之类的东西还是要 $manach ...
分类:
其他好文 时间:
2018-03-16 17:24:04
阅读次数:
162
【BZOJ2342】双倍回文(回文树) 题面 "BZOJ" 题解 构建出回文树之后 在$fail$树上进行$dp$ 如果一个点代表的回文串长度为$4$的倍数 并且存在长度为它的一半的回文后缀 那么就是可行的 如何维护长度是一半的回文后缀? $fail$树上的父亲一定包括了它的所有的回文后缀 因此在$ ...
分类:
其他好文 时间:
2018-02-22 22:06:23
阅读次数:
182
发现每个可行的答案是两个短的回文串拼成的一个长的回文串所以短串一定是长串的某个后缀建出来回文自动机后,在$fail$树$dfs$即可 1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<algorithm> 5 ...
分类:
其他好文 时间:
2017-12-26 21:08:09
阅读次数:
157
这题属于博主还未填坑系列,先嘴巴AC,到时候有时间再搞字符串时,再来好好填坑。 废话不多说上题: 题解: 显然是和马拉车有关的吧,我们可以先对整个串跑一个马拉车,然后枚举‘#’好字符,并以他为中心,在枚举一个在其回纹半径之内的‘#’号,检查二号#是否能覆盖一号,可以的话显然就是一个双回文了,但他的复 ...
分类:
其他好文 时间:
2017-07-15 01:50:07
阅读次数:
151
Description Input 输入分为两行,第一行为一个整数,表示字符串的长度,第二行有个连续的小写的英文字符,表示字符串的内容。 输入分为两行,第一行为一个整数,表示字符串的长度,第二行有个连续的小写的英文字符,表示字符串的内容。 Output 输出文件只有一行,即:输入数据中字符串的最长双 ...
分类:
其他好文 时间:
2017-05-28 22:29:35
阅读次数:
163
Description Input 输入分为两行,第一行为一个整数,表示字符串的长度,第二行有个连续的小写的英文字符,表示字符串的内容。 输入分为两行,第一行为一个整数,表示字符串的长度,第二行有个连续的小写的英文字符,表示字符串的内容。 Output 输出文件只有一行,即:输入数据中字符串的最长双 ...
分类:
其他好文 时间:
2017-05-16 21:40:20
阅读次数:
205
首先要吐槽LRJ,书上给的算法标签是“有难度,需要结合其他数据结构”,学完Manacher才发现几乎一裸题 题目的意思是问原串中有多少个wwRwwR这样的子串,其中wR表示w的反串 比较容易看出来,wwRwwR本身是一个回文串,wwR也是一个回文串 最裸的暴力是,我们枚举每一个回文串,然后判断这个回 ...
分类:
其他好文 时间:
2017-03-10 22:19:47
阅读次数:
174
题目链接:双倍回文 回文自动机第二题。构出回文自动机,那么一个回文串是一个“双倍回文”,当且仅当代表这个串的节点\(u\)顺着\(fail\)指针往上跳,可以找到一个节点\(x\)满足\(2len_x=len_u\)。当然还需要\(len_u\)是\(4\)的倍数。 然后我们把\(fail\)树构出 ...
分类:
其他好文 时间:
2017-03-09 19:50:28
阅读次数:
220