摘要: POJ-3693 Maximum repetition substring (后缀数组) 题意:求连续重复次数最多的子串 一个连续重复子串可以描述为$l,r,len$(端点,循环节长度) \(O(n^2)\):直接枚举$l,len$,然后求$l$和$l+len$的$LCP$,就能得到最大的$r$ 考 阅读全文
posted @ 2020-01-19 15:16 chasedeath 阅读(86) 评论(0) 推荐(0) 编辑
摘要: POJ-3294 Life Forms (后缀数组) 要按照字典序输出的话后缀自动机就比较麻烦了,所以没有 把所有字符串接在一起,中间用不同的奇怪的字符隔开 二分答案$x$,将$LCP$数组分组使得每组中的$LCP\ge x$,找一下是否一半的串都在这组中出现过了即可 输出注意格式 #include 阅读全文
posted @ 2020-01-19 14:50 chasedeath 阅读(90) 评论(0) 推荐(0) 编辑
摘要: POJ-1743 Musical Theme (后缀系列) 由于有着所谓的升降调(?),所以可以理性地想到先作差 然后就是要统计最长的 至少不重叠地出现两次的 子串 注意有个Trick : 小于5不能输出! \(\ \) 后缀数组 依然地我们先二分答案$x$, 对于$LCP$数组分组,每组之内$LC 阅读全文
posted @ 2020-01-19 14:42 chasedeath 阅读(126) 评论(0) 推荐(0) 编辑
摘要: Luogu-2852 [USACO06DEC]牛奶模式Milk Patterns (后缀系列) 题意:求至少出现了$k$次的最长子串 后缀数组 二分长度$x$ 我们可以将$LCP$数组分段,每段内的$LCP[i]\ge x$,那么出现这些后缀长度为$x$的前缀均相同,然后统计每段最多包含几个后缀即可 阅读全文
posted @ 2020-01-19 14:27 chasedeath 阅读(93) 评论(0) 推荐(0) 编辑
摘要: HDU-5008 Boring String Problem(k大子串,后缀系列) 这个题似乎没有办法用后缀自动机写。。。 \(\ \) 后缀数组 由于后缀数组已经排好序,所以可对于$sa[i]$考虑其贡献的个数为$n-sa[i]+1-lcp[i-1]$ 考虑个数累前缀和$Sum[i]$,二分就$S 阅读全文
posted @ 2020-01-19 14:15 chasedeath 阅读(133) 评论(0) 推荐(0) 编辑
摘要: POJ-2774 Long Long Message (最长公共子串,后缀系列结构) 后缀数组 将两个串接在一起,中间加上一些奇怪的字符 然后就是求下标分别落在两个串中的所有$i,j$中$LCP(Suf_i,Suf_j)$的最大值 按照$SA$的顺序可以发现只用考虑最近的$i,j$,所以对于每个 \ 阅读全文
posted @ 2020-01-19 14:06 chasedeath 阅读(187) 评论(0) 推荐(0) 编辑
摘要: SPOJ-DISUBSTR - Distinct Substrings(后缀系列结构) 这是一个非常基础的模型了 后缀数组做法就是$Ans=\sum n-sa[i]+1-lcp[i-1]$ 这题后缀自动机和后缀树没有什么特别大的差别 后缀自动机有两种做法 欢迎跳转总结博客 SA: #include< 阅读全文
posted @ 2020-01-19 13:39 chasedeath 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 后缀数组&自动机&树 后缀系列字符串结构总结 博主的一些习惯 字符串叫$S$,长度叫$n$,字符串$a,b$相接为$a+b$,下标从一开始,$S_{i,j}$表示$i$到$j$这一段子串 字符串之间$<,>$表示字典序比较 所有例题的题解都可以在文末找到 \(\ \) \(\ \) 1: SA(后缀 阅读全文
posted @ 2020-01-19 13:28 chasedeath 阅读(285) 评论(0) 推荐(1) 编辑