随笔分类 -  字符串—后缀数组

摘要:sutoringu 题意: 询问有多少一个字符串内有多少个个子区间,满足可以分成k个相同的串。 分析: 首先可以枚举一个长度len,表示分成的k个长为len的串。然后从1开始,每len的长度分成一块,分成(n-1)/k+1块,首先可以求出连续的k块的是否是合法。 此时只求了起点是1+len*i的串, 阅读全文
posted @ 2019-03-27 19:58 MJT12044 阅读(241) 评论(0) 推荐(0)
摘要:题目: 给出长度为n的字符串,你需要找到一些不相交的长为k的段,这些段的字典序必须非降。 分析: 如果k等于1,那么就是一个最长不降子序列问题。长度不是1的话,从对于fi],从$1~i-k$转移即可,然后树状数组优化。 用SA预处理每段子串的大小。 代码: 阅读全文
posted @ 2019-03-26 22:04 MJT12044 阅读(140) 评论(0) 推荐(0)
摘要:4556: [Tjoi2016&Heoi2016]字符串 链接 分析: 首先可以二分这个长度。此时需要判断是否存在一个以b结尾的前缀,满足与[c,d]的lcp大于等于mid。 如果我们把串翻转,那么就是判断是否存在一个以b开始的后缀,这样可以建出SAM,线段树维护每个点的right集合。此时在从包含 阅读全文
posted @ 2019-03-14 22:05 MJT12044 阅读(288) 评论(0) 推荐(0)
摘要:P3900 [湖南集训]图样图森破 链接 分析: 感觉像个暴力。 可以枚举回文串的回文中心,即枚举一个串,枚举一个串的位置作为回文中心,然后求出这个串内的回文串的长度。 此时如果回文串两端都没有到这个串的端点,那么以这个点作为回文中心的长度就直接算出来了。 如果回文串的长度刚好是这个串的长度,那么I 阅读全文
posted @ 2019-03-03 17:12 MJT12044 阅读(456) 评论(0) 推荐(0)
摘要:很久没写过这东西了,复习一波。 3238: [Ahoi2013]差异 链接 单调栈维护height数组,由于height是递增的,所以维护单调栈中维护每个height出现的次数。(还可以两遍单调栈求一个点是最小值的区间) 1 #include<cstdio> 2 #include<algorithm 阅读全文
posted @ 2019-01-02 22:50 MJT12044 阅读(319) 评论(0) 推荐(0)
摘要:DISUBSTR - Distinct Substrings 链接 题意: 询问有多少不同的子串。 思路: 后缀数组或者SAM。 首先求出后缀数组,然后从对于一个后缀,它有n-sa[i]-1个前缀,其中有height[rnk[i]]个被rnk[i]-1的后缀算了。所以再减去height[rnk[i] 阅读全文
posted @ 2018-09-04 16:14 MJT12044 阅读(168) 评论(0) 推荐(0)
摘要:3277: 串 https://www.lydsy.com/JudgeOnline/problem.php?id=3277 分析: 广义后缀自动机是什么? 广义后缀自动机不就是把很多串的SAM建到了一个SAM上,建每个串的时候都从root开始(last=root)就行了。 广义后缀自动机是Trie树 阅读全文
posted @ 2018-07-20 17:33 MJT12044 阅读(227) 评论(0) 推荐(0)
摘要:1743:Musical Theme 链接 题意 给一个序列,找两个子串,满足: 长度至少为5 相同或者转置后相同(转置:序列每个数字加减相同的数字后变成的序列) 两个子串不能有公共部分。 思路 对于第二个条件,就是差分后相同(奇妙的转化)。那么就是求一个串的出现2次,不可重叠的最长的子串。 后缀数 阅读全文
posted @ 2018-05-04 11:15 MJT12044 阅读(206) 评论(0) 推荐(0)
摘要:POJ 2774 Long Long Message 链接 题意 求两个串最长公共子串。 思路 后缀数组:把两个串接在一起,求后缀数组和height,扫一遍即可。 height是后缀数组排序后的排名相邻的两个串的公共前缀,那么两个串的最长公共子串一定是:两个排名相邻的串的公共前缀,(不能是不相邻的, 阅读全文
posted @ 2018-05-04 07:55 MJT12044 阅读(165) 评论(0) 推荐(0)
摘要:1717: [Usaco2006 Dec]Milk Patterns 产奶的模式 Description 农夫John发现他的奶牛产奶的质量一直在变动。经过细致的调查,他发现:虽然他不能预见明天产奶的质量,但连续的若干天的质量有很多重叠。我们称之为一个“模式”。 John的牛奶按质量可以被赋予一个0 阅读全文
posted @ 2018-02-21 06:44 MJT12044 阅读(324) 评论(0) 推荐(0)
摘要:1031: [JSOI2007]字符加密Cipher Description 喜欢钻研问题的JS同学,最近又迷上了对加密方法的思考。一天,他突然想出了一种他认为是终极的加密办法 :把需要加密的信息排成一圈,显然,它们有很多种不同的读法。例如下图,可以读作: JSOI07 SOI07J OI07JS 阅读全文
posted @ 2018-02-21 06:40 MJT12044 阅读(213) 评论(0) 推荐(0)
摘要:P3809 【模板】后缀排序 P3809 【模板】后缀排序 P3809 【模板】后缀排序 题目背景 这是一道模板题。 题目描述 读入一个长度为 nn 的由大小写英文字母或数字组成的字符串,请把这个字符串的所有非空后缀按字典序从小到大排序,然后按顺序输出后缀的第一个字符在原串中的位置。位置编号为 11 阅读全文
posted @ 2017-07-31 17:33 MJT12044 阅读(302) 评论(0) 推荐(1)