题意:给定参数$k$,维护一个字符串,支持区间覆盖字符和查询,查询是查询区间中有多少个长度$\leq k$的子串是回文串,其中$k\leq50$ $k$很小,考虑从这里入手,我们先用manacher预处理出以每个位置开头有多少个回文串,用线段树存起来 查询$[l,r]$时$[l,r-k+1]$这段可 ...
分类:
其他好文 时间:
2018-07-22 20:49:37
阅读次数:
172
一、KMP 作用:用于在一个文本串S内查找一个模式串P出现的位置 如上图,可得在第10与26处包含ptr数组; 暴力做法:暴力for,碰到不一样的直接返回,从后一个开始继续for,最差能到O(n * m) KMP 做法: 主要的思路是跳,比如你一开始从上面例子里的bacbababadababacam ...
分类:
其他好文 时间:
2018-07-20 21:13:29
阅读次数:
166
【Manacher算法】 这个算法用来找出一个字符串中最长的回文子字符串。 如果采取暴力解最长回文子字符串问题,大概可以有两种思路:1. 遍历出所有子字符串找其中最长的回文 2. 从每个字符作为中心,向两边扩散看是否回文。 第二种比第一种稍微高明一点,但是总体的复杂度还是O(n^2)的。 而Mana ...
分类:
编程语言 时间:
2018-07-20 19:06:57
阅读次数:
200
题目描述 给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度. 字符串长度为n 输入输出格式 输入格式: 一行小写英文字符a,b,c...y,z组成的字符串S 输出格式: 一个整数表示答案 题解及总结 和很多字符串算法一样,Manacher算法与其说是一种算法,还不 ...
分类:
编程语言 时间:
2018-07-18 23:32:10
阅读次数:
172
http://acm.hdu.edu.cn/showproblem.php?pid=5340 题意 判断是否能将字符串S分成三段非空回文串 分析 manacher预处理出前缀和后缀回文的位置, 枚举第一个回文串和第三个回文串,这样得到第二个回文串的区间,找中点,因为manacher处理后所有的回文串 ...
分类:
编程语言 时间:
2018-07-11 12:20:15
阅读次数:
176
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。 示例 1: 示例 2: 查看资料找到了manacher算法 这个算法是以每一个字符为中心, 向两边发散,同时,用一个数组p来记录以每一个字符为中心的回文串的一半的长度. 先看一下该算法的核心. 确定以第i个字符为 ...
分类:
其他好文 时间:
2018-07-08 19:05:25
阅读次数:
177
//Manacher //可求最长回文子串长度 #include #include #include #include #include #include #define ma 11000005 using namespace std; int n,ans,length[mamxr) { mxr=l... ...
分类:
编程语言 时间:
2018-07-08 18:04:22
阅读次数:
183
【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=2084 【算法】 manacher 【代码】 ...
分类:
其他好文 时间:
2018-06-30 23:46:46
阅读次数:
338
【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=3068 【算法】 Manacher算法求最长回文子串 【代码】 ...
分类:
其他好文 时间:
2018-06-30 22:22:26
阅读次数:
129
Description 给出一个字符串和多组询问,每次询问一个区间内不同位置的回文串个数。 Solution 这里不是询问本质不同的回文串个数,不能用莫队+回文树。 考虑偶回文串较难处理,先在字符中间插入分隔符,变成长度为$2n+1$的串,用manacher处理得到以$i$为中心长度大于1的回文串个 ...
分类:
其他好文 时间:
2018-06-24 13:07:15
阅读次数:
222