//目录

随笔分类 -  ACM——后缀数组

摘要:题意:求出现恰好 k次的子串(可以重叠)的个数; 分析: 刚开始想到了是后缀数组,但是有什么性质,具体怎么做的没有想到。回到主题来: 连续 k 次,说明这 k 个后缀排序后在一起,每次枚举 长度的为 k 的区间,用RMQ算出最长公共前缀长度,这里就有 len 个子串是 符合满足 k 次的,但是又有可 阅读全文
posted @ 2017-09-14 20:00 小草的大树梦 阅读(518) 评论(0) 推荐(0) 编辑
摘要:一个论文题,求一个字符串有多少个不同的子串。 每个字符串可以看做一个后缀的前缀,然后,就转换为求每一个后缀中,不同的子串有多少。 每一个后缀,根据长度,可以提供len - sa[i] 个子串,但是,画图可以看出,有一些是重复的,height[i]。 阅读全文
posted @ 2017-08-14 22:43 小草的大树梦 阅读(197) 评论(0) 推荐(0) 编辑
摘要:后缀数组裸题,求排名第1~n的后缀,想相邻后缀的最长公共前缀。 集训队模板就是硬lO(∩_∩)O哈哈~ 阅读全文
posted @ 2017-07-31 10:26 小草的大树梦 阅读(161) 评论(0) 推荐(0) 编辑
摘要:题意:一道论文题,给定一串数组,求最长的重复子串长度,其中这两个子串不重叠,这两个子串可以相差同一个数字。 分析:后一个减前一个数字,那么对于上面说的,可以相差同一个数字就变成了相同数字。问题就变成了,求一个串里面的最长不可重复的子串长度。 但是不再是height数组里面的最大值了,二分答案,将he 阅读全文
posted @ 2017-07-22 15:30 小草的大树梦 阅读(184) 评论(0) 推荐(0) 编辑
摘要:题意:求两个字符串的最长公共字串(10^5)。枚举字串去匹配是最傻的方法啊。 分析: 很久之前就对后缀数组有所耳闻,是利用基数排序将所有后缀按照字典序排序。 sa[i] 排名第 i 的是后缀 k。 rank[i] 与 sa 互补,rank[i] 后缀 i 排在第几。 height[i] : sa[i 阅读全文
posted @ 2017-07-22 10:54 小草的大树梦 阅读(159) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示