AC自动机总结
AC自动机的模板
void buildAC()
{
while(!q.empty()) q.pop();
q.push();
while(!q.empty())
{
int x=q.front();q.pop();
int fail=a[x].fail;
for(int i=;i<=;i++)
{
if(a[x].son[i])
{
a[a[x].son[i]].fail=x ? a[fail].son[i] : ;//直接push根就要判断(根的孩子的fail=根)
q.push(a[x].son[i]);
}
else a[x].son[i]=a[fail].son[i];
}
}
} void buildAC()
{
while(!q.empty()) q.pop();
for(int i=;i<=S;i++)
if(a[].son[i]) q.push(a[].son[i]);
while(!q.empty())
{
int x=q.front();q.pop();
int fail=a[x].fail;
for(int i=;i<=S;i++)
{
if(a[x].son[i])
{
a[a[x].son[i]].fail=a[fail].son[i];//push根的孩子就不用这一步
q.push(a[x].son[i]);
}
else a[x].son[i]=a[fail].son[i];
}
}
}
AC自动机模板
LA3942 http://www.cnblogs.com/KonjakJuruo/p/5686373.html
uva11732 http://www.cnblogs.com/KonjakJuruo/p/5686380.html
hdu2222 http://www.cnblogs.com/KonjakJuruo/p/5686398.html
hdu1251 http://www.cnblogs.com/KonjakJuruo/p/5686407.html
LA4670 http://www.cnblogs.com/KonjakJuruo/p/5686416.html
uva11468http://www.cnblogs.com/KonjakJuruo/p/5686437.html
uva11019 http://www.cnblogs.com/KonjakJuruo/p/5686442.html
bzoj2434 http://www.cnblogs.com/KonjakJuruo/p/5662749.html
hdu3247 http://www.cnblogs.com/KonjakJuruo/p/5665829.html
hdu3341 http://www.cnblogs.com/KonjakJuruo/p/5667099.html
LA5766/uva1502/hdu4117 http://www.cnblogs.com/KonjakJuruo/p/5680063.html
hdu3065 http://www.cnblogs.com/KonjakJuruo/p/5686451.html
poj3208 http://www.cnblogs.com/KonjakJuruo/p/5673525.html
poj2778 http://www.cnblogs.com/KonjakJuruo/p/5669576.html
hdu2825 http://www.cnblogs.com/KonjakJuruo/p/5686456.html

AC自动机总结的更多相关文章
- 基于trie树做一个ac自动机
基于trie树做一个ac自动机 #!/usr/bin/python # -*- coding: utf-8 -*- class Node: def __init__(self): self.value ...
- AC自动机-算法详解
What's Aho-Corasick automaton? 一种多模式串匹配算法,该算法在1975年产生于贝尔实验室,是著名的多模式匹配算法之一. 简单的说,KMP用来在一篇文章中匹配一个模式串:但 ...
- python爬虫学习(11) —— 也写个AC自动机
0. 写在前面 本文记录了一个AC自动机的诞生! 之前看过有人用C++写过AC自动机,也有用C#写的,还有一个用nodejs写的.. C# 逆袭--自制日刷千题的AC自动机攻克HDU OJ HDU 自 ...
- BZOJ 2434: [Noi2011]阿狸的打字机 [AC自动机 Fail树 树状数组 DFS序]
2434: [Noi2011]阿狸的打字机 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 2545 Solved: 1419[Submit][Sta ...
- BZOJ 3172: [Tjoi2013]单词 [AC自动机 Fail树]
3172: [Tjoi2013]单词 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 3198 Solved: 1532[Submit][Status ...
- BZOJ 1212: [HNOI2004]L语言 [AC自动机 DP]
1212: [HNOI2004]L语言 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1367 Solved: 598[Submit][Status ...
- [AC自动机]【学习笔记】
Keywords Search Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)To ...
- AC自动机 HDU 3065
大概就是裸的AC自动机了 #include<stdio.h> #include<algorithm> #include<string.h> #include< ...
- AC自动机 HDU 2896
n个字串 m个母串 字串在母串中出现几次 #include<stdio.h> #include<algorithm> #include<string.h> #inc ...
- 【BZOJ-3881】Divljak AC自动机fail树 + 树链剖分+ 树状数组 + DFS序
3881: [Coci2015]Divljak Time Limit: 20 Sec Memory Limit: 768 MBSubmit: 508 Solved: 158[Submit][Sta ...
随机推荐
- 代码编译方式 ant +ivy
Apache Ant,是一个将软件编译.测试.部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发.由Apache软件基金会所提供. 没用过ant,了解一下,无非就这些功能, 编 ...
- ios开发--KVO浅析
目标:监听NSMutableArray对象中增加了什么 代码如下: - (void)viewDidLoad { [super viewDidLoad]; self.dataArray = [NSMut ...
- vimium
安装在chrome上的一个插件,可以实现chrome无鼠标无键盘操作. 事实上vimium就是提供了一系列的快捷键列表,所以只要熟悉了这些快捷键就可以方便使用了. 要查看快捷键列表,打开chrome, ...
- [shell基础]——split命令
测试文本 # cat name1.txt name1 alvin1 name2 alvin2 name3 alvin3 name4 alvin4 此时目录下就只有这个文件 # ls name1.txt ...
- Midway-ModelProxy — 轻量级的接口配置建模框架
Midway-ModelProxy - 轻量级的接口配置建模框架 前言 使用Node做前后端分离的开发模式带来了一些性能及开发流程上的优势(见<前后端分离的思考与实践 一>), 但同时也面 ...
- 团队作业week3 团队成员规划
划分角色:PM:黄剑锟 Dev:顾泽鹏 周辰光 孙时 Test:龚少波 赵骞 彭佟 团队贡献分的分配方法:设定两个考察方面,分别为工作量和任务难度,每个人的个人单次得分为该次任务的 工作量(最高10分 ...
- 团队项目的NABC
我们团队项目是做一个基于PC端的截屏软件,我觉得一个好的截屏软件需要具备磁性吸附的功能.当你需要对某个图像或者是其他的什么截屏的时候,精度比较高,不需要那些边框外的东西,磁性吸附就是在你选中的时候尽管 ...
- 软件工程课堂练习——N层电梯只停一层求乘客爬楼层数最少(基本方法+优化方法)
题目: •石家庄铁道大学基础大楼一共有四部电梯,每层都有人上下,电梯在每层都停.信1201-1班的张一东觉得在每层都停觉得不耐烦. •由于楼层不太高,在上下课高峰期时时,电梯从一层上行,但只允许停在某 ...
- 电梯调度--c++--软件工程
一.设计思路 (1)将乘客要去的楼层数存起来. (2)假设yi为乘客要爬楼层数之和,yi=n1*|(n1-ni)|+n2*|(n2-ni)|+..+n18*|(n18-ni)| (3)比较y1到y18 ...
- IEEE802.11数据帧在Linux上的抓取
IEEE802.11数据帧在Linux上的抓取终于得到了梦寐的<802.11无线网络权威指南>,虽然是复印版本,看起来也一样舒服,光看书是不行的,关键还是自己练习,这就需要搭建一个舒服的实 ...