![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
AC自动机
里阿奴摩西
这个作者很懒,什么都没留下…
展开
-
[AC自动机模板题] HDU 2222 Keywords Search
模板题考前复习#include#include#include#include#include#define cl(x) memset(x,0,sizeof(x))using namespace std;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1原创 2016-07-21 08:28:49 · 296 阅读 · 0 评论 -
[AC自动机 fail树 || 后缀数组] BZOJ 3172 [Tjoi2013]单词
只有我一个人觉得题意看不懂么fail树的做法首先我们将给出的n个串构建AC自动机朴素的做法是对于每个串将这个串每个节点沿着fail指针扫一遍,将路径上的所有点的cnt++但是这样做会TLE我们不妨反向思考 fail指针反向后是一棵树 沿着fail指针扫一遍就是沿着树边向根扫一遍只在插入时将每个串的每个节点cnt++ 那么每个串终点所在fail原创 2016-07-21 08:32:08 · 364 阅读 · 0 评论 -
[AC自动机 fail树 树状数组] BZOJ 2434 [NOI2011] 阿狸的打字机
PoPoQQQ:http://blog.csdn.net/popoqqq/article/details/41518097fail树不难想 看到两个条件马上想到树套树 汗后来发现可以离线 树状数组#include#include#include#includeusing namespace std;inline char nc(){ static char bu原创 2016-07-21 08:36:30 · 356 阅读 · 0 评论 -
[AC自动机 DP] BZOJ 1030 [JSOI2007] 文本生成器
AC自动机上DP算模板题吧#include#include#include#include#include#define cl(x) memset(x,0,sizeof(x))using namespace std;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) {原创 2016-07-21 08:39:09 · 271 阅读 · 0 评论 -
[AC自动机 概率DP 矩阵乘法||高斯消元] BZOJ 1444 [Jsoi2009]有趣的游戏
AC自动机建转移矩阵 然后要么矩阵乘法 无限迭代 数据范围小可以接受#include#include#include#includeusing namespace std;typedef long double ld;//typedef double ld;inline char nc(){ static char buf[100000],*p1=buf,*原创 2016-07-21 08:44:58 · 764 阅读 · 0 评论 -
[AC自动机 fail树 树链的并] BZOJ 3881 [Coci2015]Divljak
建出AC自动机和fail树然后每一个串在自动机上跑一遍 然后就是对应的节点到fail树根的路径的并都加一路径的并有一个很好地idea 可以用两种dfs序 入栈序和出栈序入栈序小于等于子树的last 减去 出栈序小于自己的 就是到根的路径#include#include#include//#define dprintf(...) fprintf(stderr,__V原创 2016-08-05 15:02:56 · 543 阅读 · 0 评论 -
[AC自动机 矩阵快速幂 期望] BZOJ 2553 [BeiJing2011]禁忌
首先贪心很容易理解每一步一旦走到禁忌点就会有一的贡献那么就记每一步走到禁忌点的概率然后累加即是答案累加可以加一个新节点 详见:http://www.cnblogs.com/zyfzyf/p/4153860.html原创 2016-08-22 21:32:49 · 435 阅读 · 0 评论 -
[二进制分组 AC自动机] HDU 4787 GRE Words Revenge
这个如果单次询问的话应该是个AC自动机裸题 多次询问本来可以按时间分治 但是强制在线 就可以用xhr的二进制分组方法 浅谈数据结构题的几个非经典解法 也可以看CA的博客 【从此不怕强制在线】二进制分组学习笔记 大致思想是修改按二进制分组 这样最多log组 每次询问的复杂度会多一个log 合并的均摊复杂度也是log的#include<cstdio>#include<cstdlib>#in原创 2017-01-30 19:44:23 · 726 阅读 · 0 评论 -
[数位DP AC自动机] Codeforces 434C Round #248 (Div. 1) C. Tachibana Kanade's Tofu
这个题无话可说 fi,j,k,tf_{i,j,k,t}表示第 ii 位,AC自动机上走到 jj ,当前得分为 kk ,是否小于上界 tt , 复杂度看着很高,其实跑不满?#include<cstdio>#include<cstdlib>#include<algorithm>#include<cstring>#define cl(x) memset(x,0,sizeof(x))using原创 2017-06-17 20:20:37 · 609 阅读 · 0 评论