随笔分类 -  字符串

摘要:int fail[N]; int trie[N][26],tot; int g[N]; void add(char *s,int x) { int p=0; for(int i=1;s[i];i++) { int c=s[i]-'a'; if(!trie[p][c]) trie[p][c]=++to 阅读全文
posted @ 2020-09-22 20:09 Suiyue_Li 阅读(115) 评论(0) 推荐(0)
摘要:[TOC] SA练习题总结 篇一 "专题链接" 总算是把$SA$相关的入门练习题做完了,也算是记下学习笔记,加深印象。 A Musical Theme "POJ 1743" 给定长度为$n$的数组,询问不重复的相似序列(序列任意相邻两项差相等)的最长长度。 换个说法就是,求最长的不重复且至少出现两次 阅读全文
posted @ 2020-04-19 12:08 Suiyue_Li 阅读(211) 评论(0) 推荐(0)
摘要:"传送门" 题目概要: 给定一个模式串 $S$,然后给了 $n$ 个字符串,求这 $n$ 个串的循环同构在 $S$ 中出现次数。 循环同构:取从左开始任意长度子串置于末尾。 每次把一段旋律里面最前面一个音换到最后面就成为了原旋律的“循环相似旋律”,还可以对“循环相似旋律”进行相同的变换能继续得到原串 阅读全文
posted @ 2020-04-09 12:51 Suiyue_Li 阅读(208) 评论(0) 推荐(0)
摘要:hihocoder 1457 "传送门" 题目概要 给定 $n$ 个由数字组成的字符串,求所有不重复子串的权值(当成10进制数)和。 思路: 首先考虑单个字符串的情况,我们知道$SAM$的所有状态$substrings$的并集,刚好是所有不重复的子串。 记 $dp[st]$ 为状态 $st$ 所有子 阅读全文
posted @ 2020-04-07 17:29 Suiyue_Li 阅读(118) 评论(0) 推荐(0)
摘要:"toc" 写在前面:这篇博客是最近在 $SAM$ 的学习过程中记录下的笔记,大部分内容都来自 "zjp" 以及 "hihocoder" 两篇博客写的都已经很完善了,但我依然写下的这篇博客,目的也算是展示我的理解以及督促学习。 定义 我们依然引入以上博客的概念。 对于字符串 $S=aabbabd$ 阅读全文
posted @ 2020-04-04 18:38 Suiyue_Li 阅读(242) 评论(0) 推荐(0)
摘要:$O(n)$ 求出字符串 $S$ 以每个点为中点的最长回文半径,包括长为偶数的子串 char s[N], ms[N]; int p[N]; inline void init(char *s) { ms[0] = '@', ms[1] = '#'; for (int i = 1; s[i]; ++i) 阅读全文
posted @ 2020-03-23 17:51 Suiyue_Li 阅读(140) 评论(0) 推荐(0)
摘要:"TOC" 后缀数组 定义 令字符串 $S=S[1]S[2]S[3]...S[n]$ ,$S[i,j]$ 表示下标从$i$ 到 $j$ 的字串 $S$的后缀数组$A$被定义为一个数组,内容是 $S$的所有后缀经过字典排序后的起始下标。 即$A[i]$ 表示排名第几的后缀的起始下标 显然 $\fora 阅读全文
posted @ 2020-03-22 22:44 Suiyue_Li 阅读(363) 评论(0) 推荐(0)