码迷,mamicode.com
首页 >  
搜索关键字:bzoj2342    ( 11个结果
bzoj2342: [Shoi2011]双倍回文 pam
题解:先建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
bzoj千题计划306:bzoj2342: [Shoi2011]双倍回文 (回文自动机)
https://www.lydsy.com/JudgeOnline/problem.php?id=2342 解法一: 对原串构建回文自动机 抽离fail树,从根开始dfs 设len[x]表示节点x表示的最长回文子串长度 在fail树上,x到根节点的路径上的点表示的字符串包含了x代表的回文子串的所有回 ...
分类:其他好文   时间:2018-04-01 21:50:07    阅读次数:157
[BZOJ2342][SHOI2011]双倍回文
"bzoj" sol 首先求出以每个位置结尾的最长回文后缀长度。 然后你实际上就是要求:对于一个长度为$4$的倍数的回文子串,是否存在一个长度为他的一半的回文后缀。 这个可以沿后缀树$dfs$一遍。因为一个回文子串的所有回文后缀一定都是他在回文树上的祖先。 code cpp include incl ...
分类:其他好文   时间:2018-03-31 23:14:42    阅读次数:198
bzoj2342 [Shoi2011]双倍回文 (manacher)
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
【BZOJ2342】双倍回文(回文树)
【BZOJ2342】双倍回文(回文树) 题面 "BZOJ" 题解 构建出回文树之后 在$fail$树上进行$dp$ 如果一个点代表的回文串长度为$4$的倍数 并且存在长度为它的一半的回文后缀 那么就是可行的 如何维护长度是一半的回文后缀? $fail$树上的父亲一定包括了它的所有的回文后缀 因此在$ ...
分类:其他好文   时间:2018-02-22 22:06:23    阅读次数:182
【bzoj2342】[Shoi2011]双倍回文
这题属于博主还未填坑系列,先嘴巴AC,到时候有时间再搞字符串时,再来好好填坑。 废话不多说上题: 题解: 显然是和马拉车有关的吧,我们可以先对整个串跑一个马拉车,然后枚举‘#’好字符,并以他为中心,在枚举一个在其回纹半径之内的‘#’号,检查二号#是否能覆盖一号,可以的话显然就是一个双回文了,但他的复 ...
分类:其他好文   时间:2017-07-15 01:50:07    阅读次数:151
bzoj2342 [Shoi2011]双倍回文
Description Input 输入分为两行,第一行为一个整数,表示字符串的长度,第二行有个连续的小写的英文字符,表示字符串的内容。 输入分为两行,第一行为一个整数,表示字符串的长度,第二行有个连续的小写的英文字符,表示字符串的内容。 Output 输出文件只有一行,即:输入数据中字符串的最长双 ...
分类:其他好文   时间:2017-05-16 21:40:20    阅读次数:205
[BZOJ2342][Shoi2011]双倍回文
[BZOJ2342][Shoi2011]双倍回文 试题描述 输入 输入分为两行,第一行为一个整数 n,表示字符串的长度,第二行有 n 个连续的小写的英文字符,表示字符串的内容。 输出 输出文件只有一行,即:输入数据中字符串的最长双倍回文子串的长度,如果双倍回文子串不存在,则输出0。 输出文件只有一行 ...
分类:其他好文   时间:2017-02-11 14:45:16    阅读次数:178
bzoj2342【SHOI2011】双倍回文
manacher+set...
分类:其他好文   时间:2016-05-25 00:35:21    阅读次数:186
【BZOJ2342】【Shoi2011】双倍回文 Manacher+枚举+最优性剪枝
题解:Manacher处理出回文半径,然后知道一个回文串后就可以知道两边的回文中心,然后O(1)check是否合法,即判断两边中心的回文半径。 这里需要枚举每一个位置的回文半径,因为比如这个  18 abbbaabbbaccddddcc ccddddcc就不是双倍回文,但是它中间有个dddd是双倍回文,如果每个回文只check最长的是不是双倍回文,就会WA在这里。 所...
分类:其他好文   时间:2014-12-28 14:19:26    阅读次数:158
11条   1 2 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!