bzoj3998: [TJOI2015]弦论
-
description
求一个串的第k小子串(本质相同,位置不同的T = 0算相同,T = 1算不同) -
solution
- T = 0时:
sam:每一个子串对应后缀自动机上一个合法路径。
sa:在每个子串第一次出现的后缀上统计到它,这样从前往后扫一遍就可以了。 - T = 1时:
sam:类似T = 0,我们可以设\(num_i\)表示从根走到\(i\)这里有多少个子串,在T = 0的时候,\(num_i = 1\),而T = 1的时候\(num_i\)就是他的right集合大小。
sa:还是在每个子串出现的第一个后缀上统计到它,这样的话我们从后向前统计,每次\(height[i]\)后面的除了这个后缀本身的一段,还要把之前没有加的也加进来,这个可以用线段树维护。
- T = 0时:
-
notice
这题时限卡的紧,sa是会T的。
但是sa可以处理多次询问,不知道sam如何处理多次询问。
原文出处http://www.cnblogs.com/showson/