SAM——重复旋律能告诉我们什么

  • 重复旋律五:\(S\)中本质不同的子串数量:\(\sum_{i = 1}^{sz}{len_i - len_{f_i}}\)
  • 重复旋律六:如果节点\(u\)不包含子串\(S[1..i]\),也就是不存在母串的某个前缀,那么满足\(|endpos(u)| = ∑|endpos(son(u))|\),其中\(son(u)\)\(u\)点的所有儿子,否则\(|endpos(u)| = ∑|endpos(son(u))|+1\)
  • 重复旋律七:通过\(len\)与桶排序在线性时间内求出\(SAM\)的拓扑序;可以考虑通过求出父亲与儿子的关系在\(parent\)树上递推出答案;多串处理时可以考虑在中间假如一些分隔字符。
  • 弦论乱入:每一节点的\(endpos\)的大小代表了本质相同的串的出现次数,可以通过\(siz=|endpos|或者1\)来解决本质相同/不同子串的问题,其中\(siz\)表示单个子串的出现位置,可以通过拓扑序倒序递推,而表示子树大小的\(sum\)则需要在\(parent\)树上求得。

(持续更新中……

posted @ 2020-10-27 21:56  When_C  阅读(128)  评论(1编辑  收藏  举报