http://codeforces.com/problemset/problem/666/E 首先一个显然的想法 对于广义后缀自动机上每一个点 开线段树存子树出现次数的众数 预处理可以使用线段树合并 问题在于询问$[l, r]$的时候 如何找到点$r$的位置(此时左端点是从$l$出发的,而不是从$1 ...
分类:
其他好文 时间:
2018-05-06 19:59:02
阅读次数:
212
https://www.lydsy.com/JudgeOnline/problem.php?id=3277 把多个串插入广义后缀自动机中,建出parent树,在树上做set启发式合并, 记录下每一个前缀在不同串出现的次数, 再对每个串暴力匹配一遍,求出答案即可. 复杂度O(nlogn) 1 #inc ...
分类:
其他好文 时间:
2018-05-05 23:09:36
阅读次数:
300
https://www.luogu.org/problemnew/show/P3804 CLJ神犇WC课件 https://wenku.baidu.com/view/90f22eec551810a6f4248606.html #include<cstdio> #include<algorithm> ...
分类:
其他好文 时间:
2018-05-04 21:57:21
阅读次数:
174
http://hihocoder.com/problemset/problem/1457 val[i] 表示状态i所表示的所有字符串的十进制之和 ans= ∑ val[i]在后缀自动机上,从起始状态走任意一条路径到达任意一个状态,这条路径上的字符就是到达的状态的字符串之一 所以利用拓扑排序,记录从起 ...
分类:
编程语言 时间:
2018-05-03 22:00:37
阅读次数:
221
http://acm.hdu.edu.cn/showproblem.php?pid=4641 https://blog.csdn.net/asdfgh0308/article/details/40969047 给一个小写字母字符串,1 a表示在字符串尾部添加一个小写字母a,2 表示当前有多少种子串出 ...
分类:
其他好文 时间:
2018-04-28 19:21:37
阅读次数:
200
https://www.lydsy.com/JudgeOnline/problem.php?id=3926 广义后缀自动机是一种可以处理好多字符串的一种数据结构(不像后缀自动机只有处理一到两种的时候比较方便)。 后缀自动机可以说是一种存子串的缩小点数的trie树,广义后缀自动机就是更改了一下塞点的方 ...
分类:
其他好文 时间:
2018-04-27 12:26:15
阅读次数:
167
就是后缀自动机的板子嘛..构造完自动机之后拓扑一下,记录size,对于size大于k的点和ans取max cpp include include include include using namespace std; const int N=100005; int n,m,a[N],cur=1,c ...
分类:
其他好文 时间:
2018-04-25 18:54:09
阅读次数:
110
题面 "传送门" Sol 求多个串的不同子串的个数 广义后缀自动机 也就是可以表示所有的串的所有的后缀的自动机 那么每次建一个串后,另外一个串接在初始节点下面建就好了 叶子节点最多$20$个 那么对于每个叶子结点遍历一遍树建立$sam$ 注意回溯时要把$last$指回来 cpp include de ...
分类:
其他好文 时间:
2018-04-24 13:58:22
阅读次数:
135
后缀自动机 是什么? 博主不想写~~反正没人看~~ 直接去$hihocoder$ "1" "2" 模板 cpp include define IL inline define RG register define Fill(a, b) memset(a, b, sizeof(a)) using na ...
分类:
其他好文 时间:
2018-04-17 22:25:39
阅读次数:
170