摘要:
$SA$ 总数 重复出现的次数。 $\frac{n\times (n+1)}{2} \sum_{i=1}^n ht[i] $ "$SAM$" 2019.01.09 阅读全文
摘要:
题意:求 $T$ 与 $S$ 的每个后缀的最长公共前缀。 先令 $s=S+T$ ,$z[i]$ 表示 $T$ 与 $suff_i$ 的最长公共前缀。 (注意下标是从 $0$ 开始的) $z[i]=min(z[i l],r i+1)$ ,前一部分如图: 后一部分是要保证不能越过最靠右的边界,因为更靠右 阅读全文
摘要:
题解:二分+莫队 "感谢hl666大佬" 我们搞出后缀数组然后对于每一个询问串二分出在后缀数组上对应的询问区间。 然后我们的问题变成了区间颜色数,即不同种类的后缀数,开个桶即可。 如何考虑对每只猫的贡献?比如总询问数为 $cnt$ ,有一只猫待在桶里的时间为 $[i,j)$ 。我们可以先假设猫能在桶 阅读全文
摘要:
题意:求出现次数 $\geq K$ 的最长子串的长度。 $SA$ 中所有 $i\in [l,l+K 2],ht[i]$ 的最小值。单调队列。 $SAM$ 建出来后,跑一边子树和即为出现次数顺便记下答案。 2020.01.09 阅读全文
摘要:
题意:求 $\sum_{1\leq i include include define R register int define ll long long using namespace std; namespace Luitaryi { inline int g() { R x=0,f=1; re 阅读全文
摘要:
题意:两个字符串取出相同子串的方案数,方案不同当且仅当这两个子串中有一个位置不同。 $SA$ 后缀的前缀是子串,即求 $\sum_{i include include define R register int define ll long long using namespace std; nam 阅读全文
摘要:
题意:求差分串的最长公共子串。 $SA$ 二分答案 $k$ ,即求是否存在一段连续的 $ht[]$ ,且其中包括了所有串的后缀。 $SAM$ 板子? 2020.01.09 阅读全文
摘要:
题意:对于每个 $k$ ,求 $S[p,p+k 1]==S[q,q+k 1],(p,q)为无序二元组$ 的方案数,并求出在 $k$ 一定时,$vl[p]\times vl[q]$ 的最大值。 $SA$ 并查集:我们把 $ht[]$ 当做边,合并时计算两个集合产生的贡献; 好像还可以单调栈+ST表做吧 阅读全文
摘要:
题意:给出一个字符串 $S$ ,将 $S$ 所有的循环同构串按字典序排序,按顺序输出排序后每个串的首字符。 $SA$ 把串复制一倍拼在后面,然后进行后缀排序即可。 $SAM$ ...没必要吧。 2020.01.09 阅读全文