我还什么都不会啊 字符串还是很重要的,省选肯定会考的吧 所以还是先写一下马拉车吧 $ $ $Manacher$ 是一个求最长回文子串的算法,复杂度$O(n)$ 核心原理就是利用回文串的性质 首先还是按照对称轴来找回文串,为了避免分类讨论回文串的奇偶性,所以可以在字符串之间先填充特殊字符 具体做法就是 ...
分类:
编程语言 时间:
2019-01-01 19:51:39
阅读次数:
155
【题目】: 给定一个字符串str,返回把str全部切成回文子串的最小分割数 举例: str="ABA" 不需要切割,str本身就是回文串,所以返回0 str="ACDCDCDAD" 最少需要切2次变成3个回文子串,比如"A","CDCDC"和"DAD",所以返回2 题目来源:左程云老师《程序员代码面 ...
分类:
其他好文 时间:
2019-01-01 17:25:02
阅读次数:
185
"传送门" Sol 首先 $n$ 为奇数肯定无解 当 $n$ 为偶数时 老套路,把串 $S$ 变成 $S_1S_nS_2S_{n 1}$,设为 $T$ 那么满足条件的 $S$ 的划分相当于 $T$ 中的划分,使得每一段为长度为偶数的回文串 下面就只考虑 $T$ 的划分 设 $f_i$ 表示前 $i$ ...
分类:
其他好文 时间:
2018-12-21 19:37:30
阅读次数:
184
【题目】: 给定一个字符串str,如果可以在str的任意位置添加字符,请返回在添加字符最少的情况下,让str整体都是回文字符串的一种结果 举例: str="ABA",str本身就是回文串,不需要添加字符,所以返回"ABA" str="AB",可以在'A'之前添加'B',使str整体都是回文串,故可以 ...
分类:
其他好文 时间:
2018-12-20 15:43:21
阅读次数:
466
A:签到。 B:仅当只有一种字符时无法构成非回文串。 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace ...
分类:
其他好文 时间:
2018-12-16 11:14:05
阅读次数:
205
题目描述 题解: 这篇题解是关于manacher+SAM的。 因为我还不会回文自动机我会学的 SAM支持给出一个串,求出现次数。 manacher支持找回文串。 然后放在一起,当每个节点回文半径扩展时查询。 这样时间是O(n^2)的。 为了时间,我们可以O(nlogn)预处理每个节点沿pre指针条2 ...
"传送门" 对$A$、$B$串各跑一遍$manacher$,求出第$1$、$2$类扭动回文串的最大长度。 考虑第三类的扭动回文串$S(i,j,k)$,一定可以表示为$A(i,l)+A(l+1,j)+B(j,k)$或$A(i,j)+B(j,l)+B(l+1,k)$,其中,第一段与第三段对称(第一段正着 ...
分类:
Web程序 时间:
2018-12-12 13:23:23
阅读次数:
226
题面 题意:给你2个串(长度1e6),在第一个串里找“s1s2s3”,第二个串里找“s4”,拼接后,是一个回文串,求方案数 题解:知道s1和s4回文,s2和s3回文,所以我们枚举s1的右端点,s1的长度乘以s2起始点为左边界的回文串的数量,累加就是答案。 所以先求s1,再求以每个点为左边界的回文串的 ...
分类:
其他好文 时间:
2018-12-11 17:18:09
阅读次数:
188
P4555 [国家集训队]最长双回文串 题目大意 求S的最长双回文子串T,即可将T分为两部分X,Y,(|X|,|Y|≥1)且X和Y都是回文串 建两个回文自动机,一个维护前缀,一个维护后缀 最后扫一遍更新答案 My complete code: ...
分类:
其他好文 时间:
2018-12-11 11:26:36
阅读次数:
174