![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
后缀数组
Ghostkkkk
这个作者很懒,什么都没留下…
展开
-
模板_后缀数组
int cntA[MAXN],cntB[MAXN],sa[MAXN],tsa[MAXN],Rank[MAXN],A[MAXN],B[MAXN],height[MAXN];void build_sa(char* ch,int n) { for (int i = 0; i < 256; i ++) cntA[i] = 0; for (int i = 1; i <= n; i ++)原创 2017-08-16 14:42:53 · 175 阅读 · 0 评论 -
POJ - 3693 Maximum repetition substring 后缀数组 分块
题意:给一个字符串,求重复次数最多的连续重复子串,如有多解,输出字典序最小的。思路:先后缀数组求height,然后考虑分块,枚举重复子串的长度l,则每个重复子串必定经过(0,l,2*l,3*l.....)中的一个点,然后对每两个相邻的这样的点求LCP(i,i+L),这是向后匹配能匹配多少,如果忽略i前面的部分,答案是LCP(i,i+L)/L+1,但是如何计算i前面的原创 2017-10-02 18:57:19 · 219 阅读 · 0 评论 -
牛客国庆集训派对Day3 - F.Palindrome 回文树 后缀自动机
链接:https://www.nowcoder.com/acm/contest/203/F来源:牛客网 题目描述修修在蒜头送给他的奖杯上看到了一个长度为n的字符串s。他希望从s中选择两个非空子串a,b(可以有重叠的部分),使得它们拼起来是一个回文串。修修很快就算出了方案数,他听说你也会数数,就让你也来解决一下这个问题。两个方案不同当且仅当a,b中至少一个的长度或位置不同。输入描...原创 2019-01-07 20:14:29 · 385 阅读 · 0 评论 -
ACM-ICPC 2017 Asia Qingdao J. Suffix 二分 HASH LCP
https://nanti.jisuanke.com/t/18520题意:给你n个字符串,你需要依次从每个字符串选一个后缀拼接起来,问字典序最小的串是什么?题解:贪心从后往前看,最后一个串一定选择字典序最小的后缀,然后把这个后缀拼接到第n - 1个串,重复这个步骤就行了。具体实现:从后往前遍历,每次找当前串的最小后缀,这个可以对于当前下标和当前最小后缀下标二分+hash找到...原创 2018-10-09 17:12:44 · 651 阅读 · 0 评论