BZO2754: [SCOI2012]喵星球上的点名 "题目链接" 分析: 把姓和名中间用一个分隔符分开,和询问串一起建立后缀数组。 后缀数组上每个位置存对应串的标号。对于一个询问串(T),找到他对应的位置。 考虑和他的lcp =len(T)的位置都是合法的。左右二分/倍增提取出这样的区间。 那么第 ...
分类:
编程语言 时间:
2018-11-25 13:27:36
阅读次数:
167
题意:求出字符串中包含了某个字符的字符序列不一样的数量。 思路:其实主要的是找出每个被包含字符的数量,假设除了目标字符之外的所有字符都不一样,那么应该就很好求了,但是显然不可能,所以我们可以枚举每一个起点,个数应该是从他的下一个字符是目标字符起的所有数量,但是通过观察我们可以发现这样计算我们又会多计 ...
分类:
编程语言 时间:
2018-10-28 11:20:53
阅读次数:
187
SA写了就忘,SAM根本学不会,没救。 SA模板: ...
分类:
编程语言 时间:
2018-10-24 22:23:35
阅读次数:
194
关于字符串前缀和后缀的题目 第一点就是从B 串中删除一段连续的子串,结果就是把B串分为三段,如下所示: | 左边部分 || 删除部分 || 右边部分 | 第二点就是pre数组和suf数组,这里是前缀数组和后缀数组,以实例来解释数组的含义:以pre数组为例 设A=abacaba,B=abcdcba,串 ...
分类:
其他好文 时间:
2018-10-18 10:48:38
阅读次数:
170
传送门:https://hihocoder.com/contest/hiho121/problem/1 题意 最长可重叠重复K次子串问题 思路 二分答案,转化成判定问题。 看看能不能找出不重叠的重复子串。对于每一组,我们检查这些后缀对应的sa值(也就是后缀起点在原串中的位置i)。如果max{sa} ...
分类:
编程语言 时间:
2018-10-16 22:10:40
阅读次数:
206
传送门: "后缀数组一·重复旋律2" 题意 最长可重叠重复子串问题 思路 二分答案,转化成判定问题。 看看能不能找出不重叠的重复子串。对于每一组,我们检查这些后缀对应的sa值(也就是后缀起点在原串中的位置i)。如果max{sa} min{sa} = k,那么就说明我们能找出一组不重叠的重复子串 AC ...
分类:
编程语言 时间:
2018-10-16 22:09:18
阅读次数:
200
传送门: "Palindrome" 题意 求最长回文字符串,在学manacher算法,所以用了manacher,看到网上好多题解使用后缀数组来做的。 思路 manacher算法,参考《ACM国际大学生程序设计竞赛 算法与实现》的板子,一开始我以为板子的manacher算法是错误的,然后上网看题解。 ...
分类:
编程语言 时间:
2018-10-16 19:25:29
阅读次数:
217
例如:输入s[]="aaa",输出sa[0]=2,sa[1]=1,sa[2]=0; cpp void build_sa(const char s[],int sa[]) { int m=128,n=strlen(s); int x=new int[n], y=new int[n], c=new in ...
分类:
编程语言 时间:
2018-10-10 17:53:20
阅读次数:
163
对于后缀有关的东西,本人一无所知。 如果你点击进来这博客,那请你谨慎阅读。 本菜鸡在开开心心刷沈大佬给我拉的铜牌题专题的时候,突然遇到了一到后缀自动机的题,不过,我完全不会。上网搜索资料的时候,我看到了后缀数组,后缀自动机,后缀树这几个东西,我也不知道他们是干什么的,也不知道他们的难度如何,于是就找 ...
分类:
编程语言 时间:
2018-10-06 13:24:22
阅读次数:
149
题意: 给一个长度为n的字符串s[0..n-1],但i的后继不再是i+1,而是(i*i+1)%n,求所有长度为n的“子串”中,字典序最大的是谁 n<=150000,s[i]=0..9 思路:后缀数组 因为前驱与后继的关系已经变化,就不能用下标直接加减 i的后继是唯一的,i的前驱却不一定 所以对于后继 ...
分类:
编程语言 时间:
2018-10-01 21:37:14
阅读次数:
178