蒟蒻知道今天才会打后缀数组,而且还是nlogn^2的。。。但基本上还是跑得过的; 重复旋律1: 二分答案,把height划分集合,height<mid就重新划分,这样保证了每个集合中的LCP>=mid,套路板子题 重复旋律2: 和上题差不多,二分答案,把height划分集合,维护集合中的最左端和最右 ...
分类:
编程语言 时间:
2017-07-01 23:20:29
阅读次数:
275
题意 给定若干组由数字构成的字符串,求所有不重复子串的和(把他们看成十进制),答案mod(1e9+7) 题解: 类似后缀数组的做法,把字符串之间用':'连接,这里用':'是因为':'的ascii码恰好是9的下一个 然后建立后缀自动机。 之后把其实只要把其中的所有':'边删去,就可以进行转移了 如果x ...
分类:
编程语言 时间:
2017-07-01 01:05:48
阅读次数:
240
后缀数组的实现 对于一个字符串 S , 有后缀数组 sa[1..n] , 排名数组 rk[1..n], 和辅助数组 height[1..n]. sa[i]: 在 S 的后缀中, 排名第 i 的后缀为 S[sa[i]: n] . rk[i]: 在 S 的后缀中, S[i:n] 的排名. height[ ...
分类:
编程语言 时间:
2017-06-29 11:24:56
阅读次数:
206
思路: 第一问 建出来后缀数组以后 前缀和一发n-sa[i]-ht[i]+1 二分 第二问 二分判断是带重复的第几 怎么判断呢 找到它 往后扫ht递减sum+=它 跟K判判 注意等于 加一 之类的各种坑爹细节 要死.. ...
分类:
编程语言 时间:
2017-06-27 00:55:37
阅读次数:
192
字符串中连续出现最多的子串 & 字符串中最长反复子串 字符串中连续出现最多的子串 & 字符串中最长反复子串,这两个问题都能够用后缀数组来表示,至于后缀数组能够參考编程珠玑P156;后缀数组就是定义一个数组指针,分别指向字符串中的相应位置,例如以下: a b c a b c a b c d e .su ...
分类:
其他好文 时间:
2017-06-23 11:39:54
阅读次数:
118
题目描述 很久很久以前,森林里住着一群跳蚤。一天,跳蚤国王得到了一个神秘的字符串,它想进行研究。 首先,他会把串分成不超过 k 个子串,然后对于每个子串 S,他会从S的所有子串中选择字典序最大的那一个,并在选出来的 k 个子串中选择字典序最大的那一个。他称其为“魔力串”。 现在他想找一个最优的分法让 ...
分类:
编程语言 时间:
2017-06-20 22:24:56
阅读次数:
169
Problem Description Now you are back,and have a task to do: Given you a string s consist of lower-case English letters only,denote f(s) as the number ...
分类:
编程语言 时间:
2017-06-20 10:58:47
阅读次数:
247
后缀数组+RMQ+二分 后缀数组二分确定第K不同子串的位置 , 二分LCP确定可选的区间范围 , RMQ求范围内最小的sa Boring String Problem Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K ...
分类:
其他好文 时间:
2017-06-19 10:02:49
阅读次数:
234
1. 概述 后缀数组是一种解决字符串问题的有力工具。相比于后缀树,它更易于实现且占用内存更少。在实际应用中,后缀数组经常用于解决字符串有关的复杂问题。 本文大部分内容摘自参考资料[1][2]。 2. 后缀数组 2.1 几个概念 (1)后缀数组SA 是一个一维数组,它保存1..n 的某个排列SA[1] ...
分类:
编程语言 时间:
2017-06-13 16:48:40
阅读次数:
171
传送门 统计大于一半的串中都出现过的子串,有多个按照字典序输出 二分子串长度 k,用 k 将height 数组分组,接下来直接判断就 ok。 有个小细节,平常统计所有串中都出现的最长子串时,把所有子串拼接起来的符号可以是相同的,但是这个题不行。(为什么?好好想想) ——代码 1 #include < ...
分类:
编程语言 时间:
2017-06-13 10:12:13
阅读次数:
171