字符串 马拉车算法 ~~ "P3805 【模板】manacher算法" ~~ "P1659 [国家集训队]拉拉队排练" "P4555 [国家集训队]最长双回文串" AC自动机 "P3808 【模板】AC自动机(简单版)" "P3796 【模板】AC自动机(加强版)" "P2444 [POI2000] ...
分类:
其他好文 时间:
2019-01-27 16:26:53
阅读次数:
192
给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度. 回文就是正反读都是一样的字符串,如aba, abba等 Input输入有多组case,不超过120组,每组输入为一行小写英文字符a,b,c...y,z组成的字符串S 两组case之间由空行隔开(该空行不用处理) ...
分类:
其他好文 时间:
2019-01-27 01:07:39
阅读次数:
225
题目链接: https://cn.vjudge.net/problem/34398/origin 本题的大意其实很简单,就是找回文串,大致的思路如下: 1. 确定一个回文串,这里用到了自定义的check函数原理如下: 传入le, ri两个值(定义从1开始), s+1 = aaadbccb. a a ...
分类:
其他好文 时间:
2019-01-19 17:40:27
阅读次数:
156
#include const int maxn=1e6+10; using namespace std; int p[maxn*2+10]; string manacher(string ss) { string tt="$#"; for(int i=0;ii) p[i]=min(p[2*id-i]... ...
分类:
其他好文 时间:
2019-01-19 11:18:45
阅读次数:
134
[DP]烤乐滋喝汤 一个很简单的DP.就是有一种情况他可能前面的都不管然后直接下药没考虑到. c++ include define ll long long define ull unsigned long long define mp make_pair define met(a,x) memse ...
分类:
其他好文 时间:
2019-01-15 14:20:53
阅读次数:
231
" 传送门 " Description 考虑一个只包含小写拉丁字母的字符串s。我们定义s的一个子串t的“出 现值”为t在s中的出现次数乘以t的长度。请你求出s的所有回文子串中的最 大出现值。 Solution 回文树裸题,或者是“回文自动机”? 每个节点都是一个回文串,然后fail指针维护的是它的最 ...
manachaer是一个可以在O(n)的时间内求出字符串中的最长回文串长度的算法 ...
分类:
编程语言 时间:
2019-01-09 20:21:51
阅读次数:
188
题目链接 一个简单的题目,但是却很少有人可以一次AC,比如我就瞎写wa了一次。。。 写本博算个教训录吧。 题目给出一个字符串,让你严格的改变一个字符使改变后的字符串是一个回文串。 回文串不用解释了。不懂自行百度。 需要注意两点: 1.如果长度为偶数,并且事先就是一个回文串,那么要输出no的,因为必须 ...
分类:
其他好文 时间:
2019-01-06 18:24:16
阅读次数:
198
可能还是非常板子的$Manacher$ 还是先跑一遍$Manacher$处理出来所有的回文半径$r[i]$ 由于我们要找的答案是两个回文串拼了起来,所以我们考虑枚举中间这个拼接处 所以我们要找到每一个$i$,其左边能够到达$i$的和右边能到达$i$的最大的回文半径 显然并不能直接使用$i+r[i]$ ...
分类:
其他好文 时间:
2019-01-01 21:08:06
阅读次数:
143
这是一道大水题 首先这里只需要统计奇回文串,所以连插入特殊字符都不需要 之后我们跑一边$Manacher$的板子 搞一个后缀和数组$pre[i]$,先把所有的回文半径对应过去,之后求后缀和 之后我们倒着统计就好了,每次$ans\times=i^{pre[i]}$ 没了 代码 cpp include ...
分类:
其他好文 时间:
2019-01-01 21:07:17
阅读次数:
143