题目描述 题解: 建出PAM之后倍增跳查。 貌似很裸。 代码: ...
分类:
其他好文 时间:
2018-12-16 18:13:49
阅读次数:
160
题解:先建pam,然后在fail树上dfs,从上到下的链如果有当前长度最远回文串的一半,那么更新答案 // pragma GCC optimize(2) // pragma GCC optimize(3) // pragma GCC optimize(4) // pragma GCC optimiz ...
分类:
其他好文 时间:
2018-10-04 11:00:53
阅读次数:
162
题目描述 记字符串 w 的倒置为 w^R^ 。例如 (abcd)^R^=dcba , (abba)^R^=abba 。 对字符串x,如果 x 满足 x^R^=x ,则称之为回文;例如abba是一个回文,而abed不是。 如果x能够写成的 ww^R^ww^R^ 形式,则称它是一个“双倍回文”。换句话说 ...
分类:
其他好文 时间:
2018-06-30 10:52:45
阅读次数:
180
https://www.lydsy.com/JudgeOnline/problem.php?id=2342 解法一: 对原串构建回文自动机 抽离fail树,从根开始dfs 设len[x]表示节点x表示的最长回文子串长度 在fail树上,x到根节点的路径上的点表示的字符串包含了x代表的回文子串的所有回 ...
分类:
其他好文 时间:
2018-04-01 21:50:07
阅读次数:
157
"bzoj" sol 首先求出以每个位置结尾的最长回文后缀长度。 然后你实际上就是要求:对于一个长度为$4$的倍数的回文子串,是否存在一个长度为他的一半的回文后缀。 这个可以沿后缀树$dfs$一遍。因为一个回文子串的所有回文后缀一定都是他在回文树上的祖先。 code cpp include incl ...
分类:
其他好文 时间:
2018-03-31 23:14:42
阅读次数:
198
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
发现每个可行的答案是两个短的回文串拼成的一个长的回文串所以短串一定是长串的某个后缀建出来回文自动机后,在$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