procedure2012
It's not worth it to know you're not worth it!

随笔分类 -  SPOJ

SPOJ
[SPOJ220 Relevant Phrases of Annihilation]
摘要:[关键字]:后缀数组 字符串[题目大意]:给定n 个字符串,求在每个字符串中至少出现两次且不重叠的最长子串。//======================================================================[分析]:做法和POJ3294大同小异,也是先将n 个字符串连起来,中间用不相同的且没有出现在字符串中的字符(且小于它们)隔开,最后加上一个最小的数求后缀数组。然后二分答案,再将后缀分组。判断的时候,要看是否有一组后缀在每个原来的字符串中至少出现两次,并且在每个原来的字符串中,后缀的起始位置的最大值与最小值之差是否不小于当前答案(判断能否做到不重 阅读全文
posted @ 2012-03-29 21:57 procedure2012 阅读(334) 评论(0) 推荐(0)
[SPOJ694 Distinct Substrings]
摘要:[关键字]:后缀数组 字符串[题目大意]:给定一个字符串,求不相同的子串的个数。//=======================================================================[分析]:如果所有的后缀按照suffix(sa[1]), suffix(sa[2]),suffix(sa[3]), ……,suffix(sa[n])的顺序计算,不难发现,对于每一次新加进来的后缀suffix(sa[k]),它将产生n-sa[k]+1 个新的前缀。但是其中有height[k]个是和前面的字符串的前缀是相同的。所以suffix(sa[k])将“贡献”出n-sa 阅读全文
posted @ 2012-03-28 11:29 procedure2012 阅读(383) 评论(0) 推荐(0)