摘要: 问题解决 一般用于解决一类最小表示或最小串的问题。 问题引入 例题: "poj1509" 求它的循环串中字典序最小的串的开头。 问题解决 暴力 找到所有的串存下来然后排序,复杂度$\Theta(n^2)$的。 诡异做法 建个后缀自动机然后遍历最小的字母边即可。 正经一点的 考虑两个指针$i$,$j$ 阅读全文
posted @ 2019-10-05 21:37 fexuile 阅读(213) 评论(4) 推荐(0) 编辑
摘要: 问题引入 现在要求一个字符串中至少出现$k$次(可以重叠)的子串的最大长度。 问题解决 暴力 首先我们可以暴力找一个子串,暴力判断这个子串出现次数,暴力计算,这样子复杂度是$\Theta(n^3)$的。 SA 考虑一种全新的做法,后缀数组。 定义 $rnk_i$表示第$i$个后缀按照字典序排名为$r 阅读全文
posted @ 2019-10-05 21:33 fexuile 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 题面 "luogu" 题解 考虑对于后缀$s_i,s_j$怎么比较两个的大小,这里钦定$i include include include include include include include include using namespace std; define ll long long 阅读全文
posted @ 2019-10-05 11:21 fexuile 阅读(132) 评论(0) 推荐(0) 编辑