
AC自动机
Mys_C_K
人生有许多道:曾经踏足的是道,即将踏往的也是道,那什么才是道呢?唯有脚下走的才是道。一切精神或者物质都归于虚无,然后从混沌中衍生出三万道。在悲喜间涉足一条无数前人经历过,且将有无数后人奔赴的道,无论是否已经或者将要到达彼岸,然后便不再回头或是左顾右盼,即使有些道繁盛至极,夜灯如昼,无数人一浪又一浪的涌去,造就了世人皆知的辉煌;即使有些道草木凋敝,荒草丛生,只等勇敢的开拓者斩开荆棘,创造一片天地;这些都无所关,无所在意,彼岸何如、来日何方甚至过往旧事都化作一缕云烟,飘渺碧霄,我自撷高山之月色,独随足落处往行。
展开
-
codeforces 149E Martian Strings - AC自动机
传送门 题解:模板题 #include #include #include #include #include #include #define M 110 #define N 100010 #define LEN 1010 #define toi(c) (c-'A'+1) #define INF (INT_MAX/10-10) #define SIG 26 using namespace原创 2018-02-04 13:55:08 · 652 阅读 · 0 评论 -
Educational Codeforces Round 16 String Set Queries - AC自动机 - 分块
传送门 题目大意:每次向集合种加入一个串,删除一个串(已经存在的), 给定一个串,问集合中每一个串在询问串种出现次数之和,字符串总长<=3e5。强制在线。 题解:如果离线的话可以预先建出一个AC自动机,然后数据结构。 强制在线,一个做法是分块,考虑建立两个AC自动机,一个大一个小,每次向小的AC自动机里面加入一个串然后暴力重构,如果小的AC自动机大小超过s那么就把小的暴力合并到大的上面...原创 2018-02-10 14:19:31 · 279 阅读 · 0 评论 -
ZOJ 3494 BCD Code - AC自动机 - 数位dp
没有传送门 没有题目大意 AC自动机维护数位dp模板题 从一位神犇那里get到了一中不特判前导0姿势 我真是愚蠢晚期 真是愚蠢晚期 愚蠢晚期 晚期 #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #include<queue&...原创 2018-02-08 11:23:17 · 296 阅读 · 0 评论 -
bzoj 4502 串 - 广义后缀自动机 - AC自动机
又是愣把串总长复杂度的题写成了给Trie大小的题 (我又可以造题啦!开森 做法是这样的,考虑一个串会有很多种拼接办法,我们取第二个前缀最短的办法。 对应到AC自动机上就是,你先枚举第二个前缀,假设在AC自动机上的节点是x,那么你不能选择一个y,存在一个从y出发的(从x跳到fail[x]丢失的那个前缀)的转移。考虑补集转化,就是统计有多少节点存在这样的转移(根除外,因为第一个串非空),换言之,...原创 2018-07-21 22:44:14 · 481 阅读 · 0 评论 -
bzoj 3881 - AC自动机 - BIT
题目大意:一开始给定若干字符串。每次往集合中塞一个字符串或者询问开始给定的字符串在多少集合中的串出现过。 题解:显然跑AC自动机,然后在fail树上做链并,这个就按dfs序排序后upd(x,1),upd(lca(x,las),-1)即可,每次询问查子树和即可一个log。 然后……实测每次暴力往上条单词节点跑的非常快,据说可能是根号的复杂度,不是很清楚,总之很难卡。 一个log的: #include...原创 2018-10-24 17:02:00 · 305 阅读 · 0 评论 -
字符串 - AC自动机 - 状压dp
题目大意: 给定m个01串,问有多少长度为2n的反回文01串,包含这m个串。 一个01串被称为反回文的,当且仅当∀i∈[1,n],s[i]̸=s[n−i+1]\forall i\in[1,n],s[i]\not=s[n-i+1]∀i∈[1,n],s[i]̸=s[n−i+1]。 m≤6,n≤500,∣si∣≤100m\le6,n\le500,|s_i|\le100m≤6,n≤500,∣si∣≤1...原创 2018-12-05 09:24:25 · 253 阅读 · 0 评论