给定字符串集合,求只属于该字符串的本质不同的非空子串的个数。
广义SAM,插入的时候记录每个初始结点对应的$i$个字符串。向上跑$link$,如果遇到$endpos$里包含其他不属于$i$字符串。标记一下$-1$,并且往后都无效。如果遇到$-1$,表示后面已经标记为$-1$了。不用继续标记。最多标记$|S|$次。最后遍历一遍合法$endpos$即可
代码
1 |
|
给定字符串集合,求只属于该字符串的本质不同的非空子串的个数。
广义SAM,插入的时候记录每个初始结点对应的$i$个字符串。向上跑$link$,如果遇到$endpos$里包含其他不属于$i$字符串。标记一下$-1$,并且往后都无效。如果遇到$-1$,表示后面已经标记为$-1$了。不用继续标记。最多标记$|S|$次。最后遍历一遍合法$endpos$即可
1 |
|