摘要:
题目大意:给出一个字符串,问它的不重复子串有多少个。两题是一样的,除了字符串长度.......思路:用后缀数组可以轻松解决。因为这个字符串的每个子串必然是某个后缀的前缀,先用后缀数组求出sa和height,那么对于sa[k],它有n-sa[k]个子串,其中有height[k]个是和上一个后缀重复的,所以要减去。所以用后缀数组求解的时间复杂度是O(n),后缀数组要是用倍增算法是O(nlog2n),效率很高。代码:#include#include#includeusing namespace std;#define maxn 50010int wa[maxn],wb[maxn],wv[maxn]; 阅读全文