KMP、AC自动机、后缀数组、后缀自动机、manacher、回文自动机 KMP AC自动机(bzoj3530) 后缀数组、manacher(0103练习题T3,和去年省选D2T3很像,但不用本质不同,而且简单很多,用后缀数组和马拉车预处理lcp和以i为开头的回文串(放到树状数组里)) 后缀自动机(b ...
分类:
其他好文 时间:
2018-01-20 17:54:41
阅读次数:
151
题意是求一个字符串每个长度的子串出现次数最多的那个出现了多少次,也就是求每个到根的最长路的right集合最大值 。 先建后缀自动机,然后将每个前缀所在的集合的初值设为1,因为所有前缀的right集合肯定不相同,而且它们包含了所有位置。 接下来按到根的最长距离从大到小排序,将right集合累加到par ...
分类:
其他好文 时间:
2018-01-19 18:47:38
阅读次数:
213
题意是求多个串的lcs。 这也是道后缀自动机的模板题。对于任意一个字符串建后缀自动机,用其他串查询就行。对于后缀自动机的每个状态要额外记匹配到当前状态的最大长度。 和spoj1811的区别在于这道题不方便后缀数组做。当然,如果不嫌很多个串用奇怪的字符连起来麻烦、判断时常数极大的话,也可以试试。 #i ...
分类:
其他好文 时间:
2018-01-19 15:44:57
阅读次数:
163
一下是蒟蒻的个人想法,并不很严谨,仅供参考,如有缺误,敬请提出 参考资料: "陈立杰原版课件" "litble" "某大神" "某大神" 其实课件讲得最详实了 有限状态自动机 我们要学后缀自动机,我们先来了解一下自动机到底是什么。【虽说以前也学过AC自动机,只是当一个名字罢了】 有限自动机的功能是识 ...
分类:
其他好文 时间:
2018-01-18 20:45:17
阅读次数:
115
题目 输入格式 一行,一个由小写字母组成的字符串S,长度不超过10^5 输出格式 L行,每行一个整数,第i行的数据表示关于S的第i个元素的最短识别子串有多长. 输入样例 agoodcookcooksgoodfood 输出样例 1 2 3 3 2 2 3 3 2 2 3 3 2 1 2 3 3 2 1 ...
分类:
其他好文 时间:
2018-01-18 19:36:17
阅读次数:
196
后缀自动机丝薄题。 求给定字符串$s$的第$k$大的子串。分unique之后的和不unique的两种询问。 首先构建出SAM。 相同子串算一个的情况: SAM上所有路径组成字符串$s$的全部子串,每个状态向下不管怎么走,形成的串都是以当前状态为前缀的。(废话) 所以我们只要知道以当前串为前缀的串有多 ...
分类:
其他好文 时间:
2018-01-18 00:58:47
阅读次数:
132
题目 对于一个给定长度为N的字符串,求它的第K小子串是什么。 输入格式 第一行是一个仅由小写英文字母构成的字符串S 第二行为两个整数T和K,T为0则表示不同位置的相同子串算作一个。T=1则表示不同位置的相同子串算作多个。K的意义如题所述。 输出格式 输出仅一行,为一个数字串,为第K小的子串。如果子串 ...
分类:
其他好文 时间:
2018-01-17 20:21:16
阅读次数:
180
题目大意 找一个环串的起点,使得从其开始遍历字典序最小 题解 建立后缀自动机,从根开始走length步,走到的点就是这个最小串的结尾,其step即表示它在串中的位置 step n + 1即为开始位置 C++ include include include include include define ...
分类:
其他好文 时间:
2018-01-17 00:34:00
阅读次数:
119
题目 求第K小子串 题解 建好SAM后,拓扑排序,反向传递后面所形成的串的数量 最后从根开始,按照儿子形成串的数量与k比较走就好了 C++ include include include include include define LL long long int define REP(i,n) ...
分类:
其他好文 时间:
2018-01-16 23:55:08
阅读次数:
174
题目 给定一个只包含小写字母的字符串SS, 请你求出 SS 的所有出现次数不为 11 的子串的出现次数乘上该子串长度的最大值。 输入格式 一行一个仅包含小写字母的字符串SS 输出格式 一个整数,为 所求答案 输入样例 abab 输出样例 4 提示 对于$10\%10%$的数据,|S| include ...
分类:
其他好文 时间:
2018-01-16 18:32:59
阅读次数:
245