码迷,mamicode.com
首页 >  
搜索关键字:后缀树    ( 124个结果
后缀自动机
基本性质 每个状态中字符串的 endpos 集合相同。 接受字符串的所有子串。 后缀树上两个结点的 lca 即为两字符串的最长公共后缀。 匹配字符串 维护当前匹配长度,失配时跳父亲即可。 后缀树 可以用 LCT 来维护信息。 记录字符串右端点对应的前缀在后缀树的位置,通过倍增快速找到该字符串所在状态 ...
分类:其他好文   时间:2021-05-03 12:26:25    阅读次数:0
[补档题解]后缀树节点数
题目描述 给定一个长度为 $n$ 的字符串 $P$,有 $m$ 次询问,每次给定两个参数 $l$ , $r$,询问子串 $P[l,r]$ 所构成的后缀树的结点数。 $n\le 10^5,m\le 3\times 10^5$ 题解 tag:分类计数;后缀树/后缀自动机;线段树/树状数组;哈希。 做法来 ...
分类:其他好文   时间:2020-05-21 23:55:09    阅读次数:94
[CTSC2010]珠宝商
题目描述 题解 首先我们考虑一种做法,对于一棵树考虑枚举每个点为根去 $\text{dfs}$ ,然后建立出特征串的 $\text{SAM}$ ,每次走到的点计算 $\text{right}$ 集合大小即可。效率为 $O(size^2)$ 。 考虑另一种做法,我们可以点分治,考虑 $u→x→v$ 这 ...
分类:其他好文   时间:2020-03-08 21:58:15    阅读次数:89
【CTSC2010】珠宝商
题目大意 给出一棵$n$个点的树,每个节点有一个字符,再给出一个长度为$m$的字符串$S$。求树上所有路径所代表的字符串在$S$中的出现次数。 $n,m\leq 50000$ 题解 首先一个$O(n^2)$的暴力是枚举每个点$dfs$一次,一边$dfs$一边在$S$的$SAM$上跑,开个栈记一下之前 ...
分类:其他好文   时间:2019-12-22 21:37:57    阅读次数:142
后缀自动机感性理解
后缀自动机感性理解 后缀自动机实是不是很好理解, 尤其是直接看大段的证明, 不知道它在干什么, 可能会有点懵 那我先介绍一下我的感性理解好了, 大家看这篇文章可能会更好的理解其他人的博客QAQ 前置芝士 : trie树 先来讲一下假后缀树($ n^2 $) , 由于它是假的所以很容易理解, 不用怕 ...
分类:其他好文   时间:2019-12-08 10:57:54    阅读次数:82
luogu SP8093 后缀自动机+树状数组+dfs序
这题解法很多,简单说几个: 1. 线段树合并,时间复杂度是 $O(nlog^2n)$ 的. 2. 暴力跳 $fail,$ 时间复杂度 $O(n\sqrt n),$ 比较暴力. 3. 建立后缀树后在 $dfs$ 序上数点,时间复杂度为 $O(nlogn),$ 十分优秀. Code: ...
分类:编程语言   时间:2019-09-24 12:21:37    阅读次数:96
HDU - 6704 K-th occurrence (后缀数组+主席树/后缀自动机+线段树合并+倍增)
题意:给你一个长度为n的字符串和m组询问,每组询问给出l,r,k,求s[l,r]的第k次出现的左端点。 解法一: 求出后缀数组,按照排名建主席树,对于每组询问二分或倍增找出主席树上所对应的的左右端点,求第k大的下标即可。 解法二: 建立后缀自动机,对后缀树(fail树)作线段树合并可得到每个结点包含 ...
分类:编程语言   时间:2019-09-12 23:37:36    阅读次数:144
K-th occurrence(后缀树组+划分树+ST表+RMQ+二分)
2019CCPC网络选拔赛1003 HDU6704 题目大意: T个测试样例。一个长度为N的字符串S,之后Q个[l,r,k],表示一个子串S[l,r],求出第k个该子串的下标。起始坐标为1。不存在输出-1。 数据范围:1≤T≤20, 1≤N≤105, 1≤Q≤105, 1≤l≤r≤N, 1≤k≤N, ...
分类:其他好文   时间:2019-08-29 00:08:02    阅读次数:130
loj6198 谢特
"题目" 显然可以构造一棵后缀树,将问题转化成了在这棵树上找到两个点$i,j$,使得$w_i\bigoplus w_j+ len_{\rm LCA(i,j)}$最大 于是在树上$dfs$的时候启发式合并$\rm trie$就好了,发现自己已经菜到不会写$\rm trie$了,$\rm trie$的插 ...
分类:其他好文   时间:2019-08-26 19:24:56    阅读次数:80
2019 CCPC 网络赛第三题 K-th occurrence 后缀数组+划分树+ST表+二分
题意:给你一个长度为n的字符串,每次询问给出三个数:L , R , K,表示原串 L 到 R 的子串在原串第K次出现的首字母的位置 解题思路:对子串的大量操作,不难想到后缀数组(后缀树/后缀自动机不会,所以没想到),注意到子串s[L.....R]必然是某一个后缀的前缀,所以所有前缀是该子串的后缀的排 ...
分类:编程语言   时间:2019-08-24 10:17:10    阅读次数:248
124条   1 2 3 4 ... 13 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!