随笔分类 - 字符串——后缀数组
摘要:https://acm.hdu.edu.cn/showproblem.php?pid=6194 题意: 给出一个串,询问他有多少个子串恰好出现k次 用后缀数组的height数组做 我们枚举按照rank排序的长为k的后缀子区间[l,r] 设这段区间的最长公共前缀位lcp 那么可以得出结论:以sa[l]
阅读全文
摘要:http://poj.org/problem?id=3294 题意: n个字符串,求至少出现在n/2个字符串中的最长公共子串,按字典序输出所有解 在下面这个题的接触上输出所有的解 https://www.cnblogs.com/TheRoadToTheGold/p/15142861.html 确定好
阅读全文
摘要:https://www.luogu.com.cn/problem/P5546 求n个单词的最长公共子串长度 单次中间用不同的字符拼起来 用后缀数组求出height之后 按height从大到小枚举lcp,并查集合并 对每个后缀标记属于哪个单词 直到合并到某个标记出现了所有单词结束 当前枚举的heigh
阅读全文
摘要:http://poj.org/problem?id=2774 先做一道小水题提提神 题意:求两个串的最长公共连续子串 可以二分+哈希做 但我要用后缀数组做 两个串拼起来,然后取满足后缀起点分别属于两个串的height数组的最大值 一开始没用特殊字符隔开两个串 他AC了,数据有缺陷呐 第二个串因为最后
阅读全文
摘要:https://acm.hdu.edu.cn/showproblem.php?pid=6988 题意: 给出一个字符串,每个字母都有一定的价值,子串的价值为各个字母价值总和 问所有不同的子串中,价值第k小的子串的价值是多少 首先二分一个价值,检验这个价值是否满足要求 一开始的二分写的 若小于等于二分
阅读全文
摘要:http://poj.org/problem?id=3693 这题要求在这道题https://www.cnblogs.com/TheRoadToTheGold/p/15141477.html的基础上输出字典序最小的解 这是在上题的基础上的题解 因为在计算最大重复次数的时候,会从分割点往前跳几个字符,
阅读全文
摘要:https://www.luogu.com.cn/problem/SP687 题意: 求重复出现次数最多的连续重复子串 枚举循环长度i 把整个串每i个长度划分一段,位置1+k*i 是每段的起点,称他为分割点 若一个长为i的子串连续出现至少2次,那么它至少包含了2个连续的分割点、 我们计算相邻两个分割
阅读全文
摘要:题意: 给出一个数字串,问所有本质不同的子串的最大值之和 如果没有本质不同的要求,就是用单调栈求出每个数字前后第一个大于它的位置,扫一遍计算即可 现在要本质不同,用后缀数组 按字典序依次计算每个后缀的贡献 对于已经按字典序从小到大排好序的后缀i-1和i来说 以i为子串左端点,[i,height[i]
阅读全文
摘要:题意: 给出一个字符串,至多将其划分为n部分,每一部分取出字典序最大的子串ci,最小化 最大的ci 先看一个简化版的问题: 给一个串s,再给一个s的子串t,问能否通过将串划分为k个部分,使t成为划分后的s的字典序最大子串 对于这个问题,从串s的最后面开始,一个字符一个字符的向前推 如果当前[l,r]
阅读全文
摘要:https://www.lydsy.com/JudgeOnline/problem.php?id=4650 如果能够预处理出 suf[i] 以i结尾的形式为AA的子串个数 pre[i] 以i开头的形式为AA的子串个数 ans= ∑ suf[i]*pre[i+1] 这两个数组的求法,类似bzoj 21
阅读全文
摘要:https://www.lydsy.com/JudgeOnline/problem.php?id=3238 跟 bzoj3879 差不多 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using n
阅读全文
摘要:https://www.lydsy.com/JudgeOnline/problem.php?id=3879 把所有的后缀取出,按rank排序 求出相邻两个后缀的lcp 每个后缀对答案的贡献就是 与在它之前的后缀的lcp之和 维护一个单调递增的栈,记录栈中元素的lcp之和 即可 #include<cs
阅读全文
摘要:https://www.lydsy.com/JudgeOnline/problem.php?id=2119 题意:将给定数组差分后,求ABA形式的字串个数,要求|B|=m,|A|>0 1、后缀数组求出 差分序列 和 翻转差分序列后的序列 的sa,rk,height 2、枚举len=|A|,对差分序列
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=4516 考虑在后面新加一个字母产生的影响 假设是第i个 如果不考虑重复,那么会增加i个不同的字符串 考虑重复的话,就是找到 最小的j,满足s[j……i] 在之前出现过,那么i的贡献就是j-1 即查找与某
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=4199 求出后缀数组的height 从大到小枚举,合并 维护组内 元素个数,最大、次大、最小、次小
阅读全文
摘要:http://poj.org/problem?id=3415 题意:求两个字符串长度不小于k的公共子串数量 两个字符串用特殊字符连起来 后缀数组求出height数组 从大到小枚举,并查集合并 记录每一组 特殊字符前有多少个,特殊字符后有多少个,合并的贡献是 两者的乘积*(当前height-m+1)
阅读全文
摘要:http://poj.org/problem?id=3261 题意: 求可重复的最长出现k次子串 后缀数组求出height后分组 从大到小每句长度,并查集合并
阅读全文
摘要:洛谷 P3649 [APIO2014]回文串 https://www.luogu.org/problem/show?pid=3649 题目描述 给你一个由小写拉丁字母组成的字符串 。我们定义 的一个子串的存在值为这个子串在 中出现的次数乘以这个子串的长度。 对于给你的这个字符串 ,求所有回文子串中的
阅读全文
摘要:Musical Theme http://poj.org/problem?id=1743 Time Limit: 1000MS Memory Limit: 30000K Description A musical melody is represented as a sequence of N (1
阅读全文
摘要:bzoj 1031:[JSOI2007]字符加密Cipher Description 喜欢钻研问题的JS同学,最近又迷上了对加密方法的思考。一天,他突然想出了一种他认为是终极的加密办法 :把需要加密的信息排成一圈,显然,它们有很多种不同的读法。例如下图,可以读作: JSOI07 SOI07J OI0
阅读全文