码迷,mamicode.com
首页 >  
搜索关键字:fail树    ( 108个结果
51nod1600-Simple KMP【SAM,树链剖分】
正题 题目链接:http://www.51nod.com/Challenge/Problem.html#problemId=1600 题目大意 给出一个字符串$s$,每次在最后插入一个字符后求它的所有分别子串构出的$fail$树的深度和。 \(1\leq Q\leq 10^5\) 解题思路 考虑两个 ...
分类:其他好文   时间:2021-02-22 11:51:13    阅读次数:0
P3649-[APIO2014]回文串【PAM】
正题 题目链接:https://www.luogu.com.cn/problem/P3649 题目大意 一个字符串,求最大的回文串长度×出现次数 解题思路 构建出$\text$然后统计一下每个节点作为后缀的次数,$fail$树上上传一下信息就好了,时间复杂度$O(n)$。 当然也可以$\text+\ ...
分类:Windows程序   时间:2021-01-11 11:29:15    阅读次数:0
CF1163D Mysterious Code(AC自动机+dp)
本题观察数据量非常小,并且求的是多串匹配,因此可以考虑使用ac自动机 设计dp状态为f[][],表示c中前i个字符匹配到第j个节点所能达到的最大值。 首先我们知道,两个匹配串在结束位置的点分别是+-1,而所有前缀能包含这两个字符串的,也应该设为对应的数值,对fail树进行修改进行。 dp的时候,枚举 ...
分类:其他好文   时间:2020-08-01 12:35:22    阅读次数:112
CF163E e-Government(Ac自动机)
跑ac自动机后使用fail树建立dfs序后跑树状数组维护答案 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=1e6+10; struct node{ int cnt; node * nxt ...
分类:其他好文   时间:2020-07-19 00:37:01    阅读次数:84
AC自动机模板
#include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=5e5+10; struct node{ int cnt; node * nxt[27]; node * fail; vector<node ...
分类:其他好文   时间:2020-07-18 00:44:51    阅读次数:57
回文自动机做题小结
模板 求以每个位置结尾的回文串的数量,加密输入 就是回文自动机节点的$len$数组,对应的是最长回文后缀 双倍回文 求形如$AArAAr$ 方法一:建立$fail$树,然后对每个$len$是偶数的点,在子树内找有没有长度为$2*len$的点,通过打标记做到$O(n)$ 方法二:求一个与$fail$数 ...
分类:其他好文   时间:2020-06-12 12:26:51    阅读次数:45
ZOJ - 3228
"ZOJ 3228" 先把模板串都丢进AC自动机 然后跑查询 对于允许重叠的,我们直接对$fail$树上一段路径的节点的答案++ 否则我们分串的长度讨论,对于每种长度的串处理一个答案$dp[i][6]$ ...
分类:其他好文   时间:2020-05-21 16:29:20    阅读次数:61
AC自动机
AC 自动机 1. Dominating Patterns "UVA 1449" 给N个串,然后再给一个串s,求N个串总共在S中出现了多少次 将N个串插入到AC自动机当中,如果某个结点为模式串末尾结点,则在fail树中,以该节点为祖先的所有结点,贡献都+1 然后直接暴力匹配即可,最后倒着去算一遍贡献 ...
分类:其他好文   时间:2020-03-20 17:07:34    阅读次数:84
[COCI2015] Divljak - AC自动机,DFS序,树状数组,LCA
有 $n$ 个询问串 $S_i$,有一个初始为空的字符串集合 $T$,接下来有 $q$ 个操作,每次向集合中添加一个字符串,或给定 $x$ 询问集合中有多少个字符串包含 $S_x$ Solution 考虑对 $S_i$ 建立 ACAM,建出 $fail$ 树,一个点发生匹配,则需要修改它到根的链,询 ...
分类:编程语言   时间:2020-03-08 17:24:36    阅读次数:65
病毒[POI2000](AC自动机+搜索)
题目链接:病毒[POI2000] 我们假设已经有一个无限长的串满足要求,那如果我们拿它去匹配会发生什么? 它会一直在Trie树和fail树上转圈,一定经过根节点且不会经过病毒字符串结束的节点。 所以如果我们能找到一个环满足“一定经过根节点且不会经过病毒字符串结束的节点”,那么就可以找到一个无限长的串 ...
分类:其他好文   时间:2020-02-14 16:33:36    阅读次数:66
108条   1 2 3 4 ... 11 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!