数据结构 栈,队列,链表 ?哈希表,哈希数组 ?堆,优先队列 双端队列 可并堆 左偏堆 ?二叉查找树 Treap 伸展树 ?并查集 集合计数问题 二分图的识别 ?平衡二叉树 ?二叉排序树 ?线段树 一维线段树 二维线段树 ?树状数组 一维树状数组 N维树状数组 ?字典树 ?后缀数组,后缀树 ?块状链 ...
分类:
编程语言 时间:
2018-08-10 15:59:19
阅读次数:
175
题意 输入n(n<=100)个字符串,每个字符串长度<=1000,你的任务是找出一个最长的字符串使得超过一半的字符串都包含这个字符串。 分析 训练指南上后缀数组的一道例题,据说很经典(估计也就是height分组比较常用)。但是训练指南上给出的中文题面真滴坑B啊!书上说,连续出现,我懵逼了好久! 我们 ...
分类:
编程语言 时间:
2018-08-08 00:55:22
阅读次数:
235
题目链接: 题意 给一串整数,问最长不可重叠最长重复子串有多长 注意这里匹配的意思是匹配串的所有元素可以减去或者加上某个值 例: 34 30 26 22 18 82 78 74 70 66 后5个整数的串可以匹配前5个数 思路 LCP问题(最长公共前缀) 两个思路 1. 后缀数组 对height数组 ...
分类:
其他好文 时间:
2018-08-03 18:04:50
阅读次数:
130
题解: 跟找最长公共子串几乎差不多的方法在后缀自动机上跑 找到一个匹配点,(len[x]-len[fa[x]])*size[x] 后缀数组也可解 将两个串相连 枚举最小值单调栈维护就可以了 代码: ...
分类:
其他好文 时间:
2018-07-23 15:02:06
阅读次数:
139
description [题面][1] solution 把所有字符串凑成一堆做后缀数组(中间隔开) 从高往低枚举$LCP$的长度$k$,把$Height==k$的两个后缀使用并查集连接, 查询$size$即可得到以对应长度单词为前缀的后缀个数,即出现次数 code cpp include incl ...
分类:
其他好文 时间:
2018-07-23 12:34:24
阅读次数:
153
D - New Distinct Substrings 题目大意:求一个字符串中不同子串的个数。 裸的后缀数组 ...
分类:
其他好文 时间:
2018-07-20 22:27:43
阅读次数:
139
#include #define LL long long #define fi first #define se second #define mk make_pair #define pii pair #define y1 skldjfskldjg #define y2 skldfjsklejg... ...
分类:
编程语言 时间:
2018-07-20 21:42:48
阅读次数:
179
```cpp void get_sa(){ for(int i=1;ik) y[++p]=sa[i] k; for(int i=1;i=1;i ) sa[c[x[y[i]]] ]=y[i]; swap(x,y); x[sa[1]]=1,p=1; for(int i=2;i ...
分类:
编程语言 时间:
2018-07-19 22:02:51
阅读次数:
234
贴模板,复习注意事项 补一句,SA是$O(N(logN))$的,暴力是$O(N(log^2(N)))$的,不卡的话,实在忘记了,就暴力,实惠又划算 CODE: ...
分类:
编程语言 时间:
2018-07-08 00:30:44
阅读次数:
174
额,最近在听大佬讲题的时候学的(因为听不懂) 具体是学的 远航之曲 大佬的blog。百度上也有就不放链接了。 我要在此立下一个flag。我一定要自己将这一部分重写一边。 ~~然后又是和其他人一样的什么从蒟蒻的角度出发,什么自己的感想,什么史上最详细。~~ 然而我并不想这么说。也不想、、、 我只是想写 ...
分类:
编程语言 时间:
2018-07-03 23:49:21
阅读次数:
170