后缀数组
weixin_44019404
这个作者很懒,什么都没留下…
展开
-
2020牛客暑期多校训练营(第一场)A B-Suffix Array
首先是题解的做法 #include<iostream> #include<cstring> #include<algorithm> #include<cmath> #include<cstdlib> #include<climits> #include<stack> #include<vector> #include<queue> #include<set> #include<bit原创 2020-07-15 15:07:30 · 122 阅读 · 1 评论 -
J - Life Forms POJ - 3294
后缀数组加上二分。(其实单调栈也行,二分也是因为其单调性) 首先,我们如果利用two pointers的思想来看,从lf出发,rt不断往前面跳转,公共子串长度为min lcp(lf,rt),当且仅当lf到rt之间,字串出现在了n/2个主串时候停止。 那么这个时候如果rt再往下走,依然满足题意,但同时,因为求的是最长字串,我们往下走取得是min(lcp(lf,rt))所以对于答案来说,不会有正向收益...原创 2019-12-05 22:14:50 · 61 阅读 · 0 评论 -
kuangbin后缀数组 - I题 POJ3415 单调栈解法
题意,给出两个字符串,给一个k,求出满足a的字串与b的子串完全一样的长度>=k的所有情况的数量。 翻译一下题意就是求所有后缀中,lcp>=k的即可。 我们拼接两个字符串,中间用不出现的字符隔开即可。 然后就是如何求解的问题。 我们知道lcp(i,j)=min(height[i+1],…,height[j]) 所以我们进行da()后,getheight()获得数组后,就可以利用单调栈的性...原创 2019-12-03 22:13:53 · 71 阅读 · 1 评论