摘要: 题目描述: 给定一个字符串,求不相同的子串的个数。 思路: 每个子串都可以用有且仅有的一个后缀的前缀表示,于是我们可以用(n-sa[i]+1)表示所有字串个数,再用减去height[i],表示减去相同的字串。 以下代码: 代码没有编辑多组数据,oj评测为多组数据 阅读全文
posted @ 2018-12-16 20:58 Jessiejzy 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 后缀数组模板: il void getsa(){ int m=128;//初始m等于字符种类数 for(int i=1;i<=n;i++)c[x[i]=s[i-1]]++; for(int i=2;i<=m;i++)c[i]+=c[i-1]; for(int i=n;i;i--)sa[c[x[i]] 阅读全文
posted @ 2018-12-16 20:56 Jessiejzy 阅读(121) 评论(0) 推荐(0) 编辑