【poj3415-长度不小于k的公共子串个数】后缀数组+单调栈

【poj3415-长度不小于k的公共子串个数】后缀数组+单调栈 这题曾经用sam打过,现在学sa再来做一遍。 基本思路:计算A所有的后缀和B所有后缀之间的最长公共前缀。 分组之后,假设现在是做B的后缀。前面的串能和当前的B后缀产生的公共前缀必定是从前往后单调递增的,每次与h[i]取min时必定将栈尾一些长的全部取出来,搞成一个短的。 所以就开一个栈,栈里存的是长度,同时存一下它的出现此处cnt。
相关文章
相关标签/搜索