![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
后缀数组
Euler_M
这个作者很懒,什么都没留下…
展开
-
spoj 694 Distinct Substrings 705 New Distinct Substrings
<br />spoj 694 Distinct Substrings<br />705 New Distinct Substrings<br />题意:这两个题都是给你一个字符串让你求不相同的子串的个数。<br />思路:因为没个子串都相当于这个字符串后缀的前缀,所以题目转换为求一个字符串所有后缀的不同前缀。<br />比如:ababab<br />saheightsuff<br />50ab<br />3 2abab<br />14ababab<br />60b<br />41bab<br />原创 2011-04-27 22:02:00 · 880 阅读 · 0 评论 -
求最长可重复子串
<br />解法:后缀数组。<br />可重复子串必定是两个后缀的公共前缀。所以这里只需要找出height数组里的最大值就可以了。原创 2011-04-26 21:54:00 · 585 阅读 · 0 评论 -
poj 2774 Long Long Message
<br />poj 2774 Long Long Message<br />题意:求两个字符串的最长公共子串、<br />才开始学后缀数组,拿这个题来练了下手。在求sa的过程中理解基数排序的过程,对LHQ牛的模板理解就会更深入。<br />感觉da的实现没必要理解得很深,主要用的还是height数组。<br />/* * File: main.cpp * Author: Mi * * Created on 2011年4月25日, 下午8:33 */ #include <stdio原创 2011-04-26 14:29:00 · 780 阅读 · 0 评论 -
poj 3261 Milk Patterns
3261 Milk Patterns题意:这个题和1743很类似,只是这个题可以求的子串重复,并且次数要大于等于k思路:还是利用height数组的性质就是两个排名相邻的两个后缀的最长瓜瓜前缀,如果要他们连续出现的只需要连续的height[i]的值都大于枚举的长度就可以了,因为这个题是可以重复的,所以没有必要去判断sa[i]-sa[i-1]>枚举长度。在枚举长度的时候还是用二分。/* * File: main.cpp * Author: Mi * * Created on 2011年4月原创 2011-04-27 20:06:00 · 572 阅读 · 0 评论