其实前面的模板也不是1A,我在题库里提前做过,也不必在意罚时,刚开始我在做别的专题

裸模板我就不说了,各个博客讲解的很明白

 void insert(string s){
int p=,len=s.size();
for(int i=;i<len;++i)
if(c[p][s[i]-'a'])p=c[p][s[i]-'a'];
else p=c[p][s[i]-'a']=++cnt;
++iii;bj[p].push_back(iii);pos[iii]=p;
}
void bfs(){
int qt=;
for(int i=;i<=;++i)if(c[][i])q[++qt]=c[][i];
for(int qh=;qh<=qt;++qh)
for(int j=;j<=;++j)
if(c[q[qh]][j])fail[q[++qt]=c[q[qh]][j]]=c[fail[q[qh]]][j];
else c[q[qh]][j]=c[fail[q[qh]]][j];
}
void find(string s){
int pp=,len=s.size();++iii;
for(int i=;i<len;++i){
pp=c[pp][s[i]-'a'];int k=pp;
while(k){
if(al[k]==iii)break;
if(!bj[k].empty())for(int i=;i<bj[k].size();++i)if(bj[k][i]<iii)p[++pcnt]=bj[k][i];
k=fail[k];al[k]=iii;
}
}
}

纯模板(最终常用形态)

事实上,trie树并没有什么用,基本上建的都是trie图

DP还是有点意思的,但是说白了都是一个套路

最短母串:

其实我用的不是AC自动机,因为没跑trie图所以没有必要建出来,只不过是把所有是别的串的字串者预处理干掉能让dp简单许多,最后没用AC自动机代码性能反而提高了。

文本生成器/禁忌:

裸的AC自动机跑trie图,就是问跑len步之后会停在哪里,或者路过了几个标记节点等等。。。禁忌稍微结合了一下矩阵快速幂,就没什么了。

教练把SPJ打错了还说我代码有问题嘤嘤嘤~3e6的输出答案误差1e-5我能怎么办呀?教练不读题然后还屠我两节课嘤。

背单词:

奇裸无比,是唯一一个没跑图而要找字串的。直接预处理字串,读入时忽视负权值字串能防T,然后裸DP,超无聊。

密码:

挺麻烦的一道题。关键是需要输出最后组成的串,存一大堆东西再逆DFS回溯回去就好了。

虽说病毒那道题是模板,但是它的思路值得一想。问是否存在无限长的串使之不匹配。

就是trie图无环啦

[专题总结]AC自动机的更多相关文章

  1. 「kuangbin带你飞」专题十七 AC自动机

    layout: post title: 「kuangbin带你飞」专题十七 AC自动机 author: "luowentaoaa" catalog: true tags: - ku ...

  2. [专题汇总]AC自动机

    1.The 2011 ACM-ICPC Asia Dalian Regional Contest ZOJ 3545 Rescue the Rabbit  简单的AC自动机+状压DP, 状态DP[nod ...

  3. 666 专题五 AC自动机

    Problem A.Keywords Search d.n个关键字,1段描述,求描述中出现了多少关键字 s. c. /* ac自动机模板 n个关键字,1段描述,求描述中出现了多少关键字 */ #inc ...

  4. HDU 4511 小明系列故事——女友的考验 (AC自动机+DP)

    小明系列故事——女友的考验 Time Limit: 500/200 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total ...

  5. AC自动机专题

    AC自动机简介:KMP是用于解决单模式串匹配问题, AC自动机用于解决多模式串匹配问题. 精华:设这个节点上的字母为C,沿着他父亲的失败指针走,直到走到一个节点,他的儿子中也有字母为C的节点.然后把当 ...

  6. AC自动机 & Fail树 专题练习

    Fail树就是AC自动机建出来的Fail指针构成的树. [bzoj3172][xsy1713]单词 题意 给定一些单词,求每个单词在所有单词里面的出现次数. 分析 构建Fail树,记录每个单词最后一个 ...

  7. 【AC自动机】专题总结

    刷了一星期+的ac自动机的题目 做一个总结~ 我的ac自动机是之前省选的时候看老师给的一个网页上学的 由于找不到原文 就贴个转载的地址吧 - - http://hi.baidu.com/winterl ...

  8. 【专题】字符串专题小结(AC自动机 + 后缀自动机)

    AC自动机相关: $fail$树: $fail$树上以最长$border$关系形成父子关系,我们定一个节点对应的串为根到该节点的路径. 对于任意一个非根节点$x$,定$y = fa_{x}$,那$y$ ...

  9. 专题训练之AC自动机

    推荐博客:http://www.cnblogs.com/kuangbin/p/3164106.html AC自动机小结 https://blog.csdn.net/creatorx/article/d ...

随机推荐

  1. MongoDB 学习笔记之 索引

    索引: db.media.createIndex({"Tracklist": 1}) 1表示升序 -1表示降序 我们要着重看一下对数组创建索引的情况. 构建一个集合:db.medi ...

  2. 网络下载器 Internet Download Manager v6.35.5 绿色便携版

    Internet Download Manager,简称 IDM,是国外的一款优秀网络下载工具.目前凭借着下载计算的速度优势在外媒网站中均受好评,现在已被多数国人熟知.Internet Downloa ...

  3. mpvue 页面预加载,新增preLoad生命周期

    存在的必要性:mpvue开发微信小程序,在页面跳转到新页面的过程中会有200ms左右的延迟,这个200ms如果用来请求新页面的接口,那么跳转到新页面或许已经渲染好了页面. 就是两种方式: 1.新页面跳 ...

  4. for循环练习题1——水仙花数

    /*输出所有的水仙花数,所谓水仙花数是指一个3位数,其各个位上数 字立方和等于其本身. 例如: 153 = 1*1*1 + 3*3*3 + 5*5*5 */class ForTest3{ public ...

  5. Python flask构建微信小程序订餐系统☝☝☝

    Python flask构建微信小程序订餐系统☝☝☝ 一.Flask MVC框架结构 1.1实际项目结构 1.2application.py  项目配置文件 Flask之flask-script模块使 ...

  6. MySQL优化与实践

    一.MySQL优化概括 二.SQL优化 实践: 1.查看是否开启了慢查询日志 show variables like 'slow_query_log' 没有开启 2.查看是否开启了未使用索引SQL记录 ...

  7. drf框架中所有视图及用法

    0909自我总结 drf框架中所有视图及用法 一.drf框架中的所有视图类 from django.views import View from rest_framework import views ...

  8. 「看完不后悔系列!」Maya的建模小技巧

    Maya 将最大的联合影响力降至最低 最大的联合影响力是游戏角色装备的已知要求. 但是,对于每种类型的生产来说,这实际上都是一个很好的工作流程. 从透视图上看,如果你将联合影响力从4更改为5,则不一定 ...

  9. 什么是IDS/IPS?

    目录   摘要 0x00 基于网络的IDS和IPS0x01 设计考虑因素0X02 IDS/IPS 总结           摘要 摘要 这篇文章主要介绍的是入侵检测系统(IDS)和入侵防御系统(IPS ...

  10. python编程系列---可迭代对象,迭代器和生成器详解

    一.三者在代码上的特征 1.有__iter__方法的对象就是可迭代类(对象) 2.有__iter__方法,__next()方法的对象就是迭代器3.生成器 == 函数+yield 生成器属于迭代器, 迭 ...