思路 一眼SAM板子,结果敲了一中午... 我还是太弱了 题目要求求第k小的子串 我们可以把t=0当成t=1的特殊情况,(所有不同位置的相同子串算作一个就是相当于把所有子串的出现位置个数(endpos大小)全部赋成1) 然后讨论如何递推的求第k小的子串 首先要统计一个sum值,代表从这个状态出发能够到达多少个子串,相当于这个节点后继节点的所有值的和,反向拓扑一下能到那些节点即可 然后逐个dfs每个位置的字符是什么即可 注意 反向拓扑不一定要真的反向建边(狗头),我这么乱搞了... 可以把每个点的…