AC自动机
文章平均质量分 71
Cymbals
Public void effect()
展开
-
2020 CCPC Wannafly Winter Camp Day2 K.破忒头的匿名信(AC自动机)
题目:https://ac.nowcoder.com/acm/contest/4010一看到题面,很容易就往dp上想,而dp式也很容易想到,当前dp[i]可以从dp[i - (当前前缀i所有在字典中出现的后缀长度)]位置转移过来,所有转移加上该匹配后缀的cost取个min就是当前dp[i]的值。直觉上,dp的转移位置好像很多,似乎是n方级别的,这就不可做了。一眼看上去确实如此,于是我往许多方向...原创 2020-01-20 23:38:58 · 612 阅读 · 0 评论 -
记录ac自动机模板
const int maxn = 500005;struct AC_Automaton { int next[maxn][26]; int fail[maxn]; int end[maxn]; int sz, root; int newNode() { for(int i = 0; i < 26; i++) { ...原创 2018-09-12 13:19:22 · 209 阅读 · 1 评论 -
HDU-3695 Computer Virus on Planet Pandora(ac自动机模板题)
Aliens on planet Pandora also write computer programs like us. Their programs only consist of capital letters (‘A’ to ‘Z’) which they learned from the Earth. On planet Pandora, hackers make computer...原创 2018-09-14 19:07:28 · 336 阅读 · 0 评论 -
2018ICPC北京区域 Approximate Matching(AC自动机+DP)
String matching, a common problem in DNA sequence analysis and text editing, is to find the occurrences of one certain string (called pattern) in a larger string (called text). In some cases, the patte...原创 2018-11-16 17:54:31 · 507 阅读 · 0 评论 -
牛客网暑期ACM多校训练营(第九场)F.Typing practice(ac自动机)
题解后补。#include<bits/stdc++.h>typedef long long ll;using namespace std;typedef long long ll;const int maxn = 1e5 + 5;int n, minn = maxn;string s, p;struct AC_Automaton { int next[m...原创 2019-05-17 19:36:14 · 235 阅读 · 0 评论 -
HDU - 6096 String(这个ac自动机有、骚)
题意:给出n个串作为字典,和q个查询,每个查询包含一个前缀和一个后缀,问字典中有多少串与查询给出的前后缀匹配。绝了这个做法。ac自动机在失配的时候,会自动跳转到当前在ac自动机上跑的串能够匹配的最长后缀位置,这一条性质竟然能搞出这么骚的操作。将查询的前后缀以后缀 + “{” + 前缀的形式拼在一起(之所以用大右括号是因为它是小写字母z的ascii码下一个),全部建立ac自动机,然后将字典串变...原创 2019-07-05 07:54:26 · 315 阅读 · 1 评论 -
Educational Codeforces Round 71 G.Indie Album(ac自动机+dfs序线段树维护fail树)
输入一颗字典树,之后m个查询,每个查询给出一个串,问这个串在字典树某一个节点代表的串中出现了多少次。一个串在另一个串中出现了多少次是sam的基操,但是这里输入了一颗字典树,4e5个节点,于是后缀自动机维护的难度和复杂度就变得巨大,分析了一下,似乎是不可做的。久违的用了一次ac自动机来解决一个串在另一个串里出现了多少次的问题,只需要建出fail树,这个问题就变成了一个串的链有多少个节点在另一个串...原创 2019-08-28 22:13:22 · 244 阅读 · 0 评论