
字符串处理
文章平均质量分 71
字符串处理
lvzelong2014
一只蒟蒻
展开
-
bzoj2119: 股市的预测 Hash+二分 调和级数
bzoj2119: 股市的预测题目传送门分析差分之后就是求有多少段相距BBB的相同子串。一种思路是,考虑长度为LLL的有多少种。一个神仙做法是,每隔LLL取一个关键点,那么每个长度为LLL的子串最多只会覆盖一个关键点,考虑过某个关键点的答案,这样一定能做到不重不漏。也就是求把一个定长度的区间两端过这个关键点iii左右滑动的最大范围。令l=i,r=i+B+Ll=i,r=i+B+Ll=i...原创 2019-01-03 11:14:30 · 258 阅读 · 0 评论 -
bzoj4327: JSOI2012 玄武密码 AC自动机
bzoj4327: JSOI2012 玄武密码Description在美丽的玄武湖畔,鸡鸣寺边,鸡笼山前,有一块富饶而秀美的土地,人们唤作进香河。相传一日,一缕紫气从天而至,只一瞬间便消失在了进香河中。老人们说,这是玄武神灵将天书藏匿在此。 很多年后,人们终于在进香河地区发现了带有玄武密码的文字。更加神奇的是,这份带有玄武密码的文字,与玄武湖南岸台城的结构有微妙的关联。于是,漫长的...原创 2018-05-31 17:02:19 · 195 阅读 · 0 评论 -
bzoj2553: [BeiJing2011]禁忌 AC自动机+矩阵乘法优化Dp
bzoj2553: [BeiJing2011]禁忌Description Magic Land上的人们总是提起那个传说:他们的祖先John在那个东方岛屿帮助Koishi与其姐姐Satori最终战平。而后,Koishi恢复了读心的能力……如今,在John已经成为传说的时代,再次造访那座岛屿的人们却发现Koishi遇到了新麻烦。 这次她遇到了Flandre Sca...原创 2018-04-20 22:42:33 · 256 阅读 · 0 评论 -
bzoj2434: [Noi2011]阿狸的打字机 AC自动机
bzoj2434: [Noi2011]阿狸的打字机Description阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机。打字机上只有28个按键,分别印有26个小写英文字母和’B’、’P’两个字母。 经阿狸研究发现,这个打字机是这样工作的: l 输入小写字母,打字机的一个凹槽中会加入这个字母(这个字母加在凹槽的最后)。 l 按一下印有’B’的按键,打字机凹槽中最后一个字母会原创 2018-02-06 21:40:11 · 310 阅读 · 0 评论 -
bzoj 3670: [Noi2014]动物园 kmp与扩展kmp
bzoj 3670: [Noi2014]动物园容Description近日,园长发现动物园中好吃懒做的动物越来越多了。例如企鹅,只会卖萌向游客要吃的。为了整治动物园的不良风气,让动物们凭自己的真才实学向游客要吃的,园长决定开设算法班,让动物们学习算法。 某天,园长给动物们讲解KMP算法。 园长:“对于一个字符串S,它的长度为L。我们可以在O(L)的时间内,求出一个名为next的数组原创 2018-01-30 08:03:53 · 481 阅读 · 0 评论 -
bzoj2084: [Poi2010]Antisymmetry 回文自动机
bzoj2084: [Poi2010]AntisymmetryDescription对于一个01字符串,如果将这个字符串0和1取反后,再将整个串反过来和原串一样,就称作“反对称”字符串。比如00001111和010101就是反对称的,1001就不是。 现在给出一个长度为N的01字符串,求它有多少个子串是反对称的。Input第一行一个正整数N (N Output原创 2018-01-30 11:24:44 · 266 阅读 · 0 评论 -
bzoj2565: 最长双回文串 回文自动机
bzoj2565: 最长双回文串Description顺序和逆序读起来完全一样的串叫做回文串。比如acbca是回文串,而abc不是(abc的顺序为“abc”,逆序为“cba”,不相同)。 输入长度为n的串S,求S的最长双回文子串T,即可将T分为两部分X,Y,(|X|,|Y|≥1)且X和Y都是回文串。Input一行由小写英文字母组成的字符串S。Output一行一原创 2018-01-29 18:25:34 · 348 阅读 · 0 评论 -
bzoj4044: [Cerc2014] Virus synthesis 回文自动机
bzoj4044: [Cerc2014] Virus synthesisDescriptionViruses are usually bad for your health. How about fighting them with… other viruses? In this problem, you need to find out how to synthesize suc...原创 2018-04-20 22:07:25 · 431 阅读 · 0 评论 -
bzoj2342: [Shoi2011]双倍回文 回文自动机
bzoj2342: [Shoi2011]双倍回文 DescriptionInput输入分为两行,第一行为一个整数,表示字符串的长度,第二行有个连续的小写的英文字符,表示字符串的内容。Output输出文件只有一行,即:输入数据中字符串的最长双倍回文子串的长度,如果双倍回文子串不存在,则输出0。Sample Input16 ggabaabaabaaba原创 2018-01-29 18:37:32 · 322 阅读 · 0 评论 -
bzoj4755: [Jsoi2016]扭动的回文串 manacher+二分+Hash
bzoj4755: [Jsoi2016]扭动的回文串DescriptionJYY有两个长度均为N的字符串A和B。 一个“扭动字符串S(i,j,k)由A中的第i个字符到第j个字符组成的子串 与B中的第j个字符到第k个字符组成的子串拼接而成。 比如,若A=’XYZ’,B=’UVW’,则扭动字符串S(1,2,3)=’XYVW’。 JYY定义一个“扭动的回文串”为如下情况中的一个: ...原创 2018-03-10 21:03:26 · 436 阅读 · 0 评论 -
bzoj4480: [Jsoi2013]快乐的jyy 回文自动机
bzoj4480: [Jsoi2013]快乐的jyyDescription【故事背景】 JYY在JSOI有很多很多的好朋友,比如PUPPY,KFC还有PUPPUP。因为 有了这么多的好朋友,所以JYY每天都很快乐。某天,JYY发现好朋友之间关 系的好坏和名字有很大的关系,比如PUPPY和PUPPUP的关系就特别好,但是 和KFC的关系就很一般。JYY苦思冥想终于发现了其中的规律...原创 2018-06-05 15:58:30 · 884 阅读 · 0 评论 -
bzoj 3676: [Apio2014]回文串 回文自动机
bzoj 3676: [Apio2014]回文串Description考虑一个只包含小写拉丁字母的字符串s。我们定义s的一个子串t的“出 现值”为t在s中的出现次数乘以t的长度。请你求出s的所有回文子串中的最 大出现值。 Input输入只有一行,为一个只包含小写字母(a -z)的非空字符串s。 Output输出一个整数,为逝查回文子串的最大出现值。原创 2018-01-28 10:27:53 · 246 阅读 · 0 评论 -
[NOI2016]优秀的拆分 后缀自动机 树上启发式合并 线段树
[NOI2016]优秀的拆分题目传送门luogubzoj分析这道题不管采用Hash,后缀数组还是自动机,网上大部分的题解都采用了关键点+调和级数这个操作。本蒟蒻想不到关键点这个操作,所以采用的是一种较为繁琐的O(nlog2)O(nlog^2)O(nlog2)做法。首先肯定将问题转化成对于每个iii求以iii为边界的AAAAAA结构个数,当然前缀后缀分别求一遍,以下默认是前缀。考虑形式...原创 2019-04-05 21:53:15 · 710 阅读 · 0 评论 -
bzoj2555: SubString SAM LCT
bzoj2555: SubString题目传送门分析考虑没有插入操作,就是后缀自动机上跑匹配,然后询问某个节点Right集合大小。有插入操作的话,相当于是要动态维护parentparentparent树上Right集合大小。肯定只能上LCTLCTLCT一种办法是LCTLCTLCT维护子树信息,略麻烦。另一种操作是,由于添加节点一定是叶子,所以可以采用不换根的LCT,每次把那个节点到根...原创 2018-12-22 10:28:34 · 238 阅读 · 0 评论 -
bzoj5417&&luogu4770你的名字 后缀自动机+线段树合并
bzoj5417&&luogu4770你的名字题目传送门:洛谷bzoj分析题目大意:给定一个模板串SSS,每次给定一个字符串TTT和l,rl,rl,r,求TTT中有多少个本质不同的子串无法匹配SSS的子串S[l⋯r]S[l\cdots r]S[l⋯r]首先肯定考虑的是l=1,r=Sl=1,r=Sl=1,r=S的情况。分析TTT的每一个前缀T[1⋯i]T[1\cdot...原创 2018-12-04 17:29:19 · 195 阅读 · 0 评论 -
bzoj4310: 跳蚤 后缀自动机+Hash字符串比较
bzoj4310: 跳蚤Description很久很久以前,森林里住着一群跳蚤。一天,跳蚤国王得到了一个神秘的字符串,它想进行研究。首先,他会把串 分成不超过 k 个子串,然后对于每个子串 S,他会从S的所有子串中选择字典序最大的那一个,并在选出来的 k 个子串中选择字典序最大的那一个。他称其为“魔力串”。现在他想找一个最优的分法让“魔力串”字典序 最小(题目有误)。In...原创 2018-01-10 19:50:14 · 515 阅读 · 0 评论 -
算法学习:后缀自动机转后缀树转后缀数组
算法学习:后缀自动机转后缀树转后缀数组引入其实这是一篇水文 想要学后缀自动机的话去查2012年noi冬令营陈立杰讲稿 顺便说一句,讲稿上有一些错误,多翻几篇博客加深理解。 今天这里主要要讲的是后缀自动机如何转后缀树和后缀数组后缀树这里首先需要提一下后缀树的概念 后缀树其实相当于把所有的后缀插入一颗Trie树 然而时空复杂度都是O(N^2)的 所以我们可以把这可T原创 2018-01-08 20:36:50 · 2993 阅读 · 2 评论 -
BZOJ3238 Ahoi2013 差异 后缀自动机,后缀树,后缀数组解法三合一
BZOJ3238 Ahoi2013 差异 后缀自动机,后缀树,后缀数组解法三合一题目传送门题目大意给一个长度为n的字符串,求 ∑n1≤ij≤nlen(Ti)+len(Tj)−2∗lcp(Ti,Tj)\sum_{1\leq i 其中len是长度,lcp是最大公共前缀长度,Ti,Tj是后缀思路1:后缀数组后缀数组求后缀公共前缀应该很简单吧,开个单调栈判断每个h[i]原创 2018-01-08 21:27:58 · 410 阅读 · 0 评论 -
bzoj4566:[Haoi2016]找相同字符 广义后缀自动机
bzoj4566: [Haoi2016]找相同字符Description给定两个字符串,求出在两个字符串中各取出一个子串使得这两个子串相同的方案数。两个方案不同当且仅当这两 个子串中有一个位置不同。Input两行,两个字符串s1,s2,长度分别为n1,n2。1 <=n1, n2<= 200000,字符串中只有小写字母Output输出一个整数表示答案Sample Inputaabb bbaaSam原创 2018-01-09 20:45:10 · 395 阅读 · 0 评论