![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
后缀数组
文章平均质量分 77
谢符宝
业精于勤,荒于嬉行成于思,毁于随。
展开
-
poj(2774)后缀数组法求公共连续…
题目原意:输入两个字符串,求最长的连续公共子串的长度;看了好长时间时间这个题,要用到后缀数组,于是下了个模板基数排序求后缀数组AC的。将两个字符串连接起来(模板里的基数排序求后缀数组要用int型,so将每个字符转换成整形),为了使得出现最长的公共子串在前后两部分里面,所以中间加个不可能出现的值(随意);然后将求最长公共子串(同时要判断的是公共子串的开头是否在两个区域OK了)。#incl原创 2014-01-16 16:38:48 · 520 阅读 · 0 评论 -
CF(427D-Match & Catch)后缀数组应用
题意:给两个字符串,求一个最短的子串。使得这个子串在两个字符串中出现的次数都等于1.出现的定义为:可以重叠的出现。解法:后缀数组的应用。从小枚举长度。如果一个长度len合法的话:则一定存在这个样的sa[i]排名。sa[i]与s[i+1]的公共前缀长度大于等于len,且sa[i]与[i-1]的公共前缀长度小于len,同时sa[i+1]与[i+2]的公共前缀长度小于len,同时保证sa[i原创 2014-05-03 21:35:39 · 1177 阅读 · 0 评论 -
hdu4416 Good Article Good sentence (后缀数组)
题意:问a串中有多少种字符串集合B中没有的连续子串。a的长度10^5,B中的总长度为不超过10^5.解法:后缀数组题目;后缀数组可以很容易算出来一个串中有多少种子串。把a和B集合连起来,求一次不同子串数量,然后减掉B相互连起来的数量。在求时候,要减掉含有链接符的子串,方法是扫一遍,枚举最后出现的连接符。代码:/********************************原创 2014-11-12 19:17:39 · 861 阅读 · 0 评论