摘要:
vjudge传送 给一个字符串,多次询问$[l,r]\(中不同子串的个数。\)(1 \leqslant |S| \leqslant 2000)$ 因为串长才2000,所以可以考虑$O(n^2)$的做法。 令$ans[l][r]\(表示区间\)[l,r]$中不同子串的个数,考虑怎么递推: 我们建立$n 阅读全文
摘要:
vjudge传送门 题面:$Q$次询问,每次求子串$[S_l, S_r]$第$k$次出现的位置。 首先,对于原串中的每一个子串,都能在SAM的后缀链接树上找到对应的节点。 那么如果我们知道这个节点的endpos集合,就能找到第$k$次出现的位置了。 所以接下来就要解决这两个问题: 1.快速确定子串在 阅读全文
摘要:
vjudge传送门 题面:(用SAM)求串的最小表示法。 首先最小表示法有$O(n)$的做法,但老师把这道题放这是让我们练SAM的,那就说SAM的做法吧。 首先把串的二倍都扔到SAM中,然后可以类比暴力的做法: 暴力的做法是从多个字典序最小的字符开始一位一位的比较,直到当前字典序最小的字符只出现在一 阅读全文