POJ 3415 后缀数组 + 单调栈
简略题意:求两个串长度不小于k的公共子串的个数。 我喜欢这题! 首先按height分组,随后对于每个A后缀,看之前出现的B后缀与其的LCP,若其长度为xx,则对答案的贡献为x−k+1x-k+1。暴力查找n2n^2, 其实B后缀的排名越接近当前A后缀,两者的LCP越高 想一想,为什么, 因此维护一个单调栈,以及栈内元素贡献总和。显然从栈底到栈顶元素逐渐增大。对A统计完答案之后再对B统计一次即可。#
原创
2017-09-12 17:36:21 ·
276 阅读 ·
0 评论