博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AC自动机 模板
阅读量:4358 次
发布时间:2019-06-07

本文共 822 字,大约阅读时间需要 2 分钟。

制作失配函数时注意两点:

一是从上往下计算,开个队列~

二是采用大白书的“一视同仁”法提高效率,就是一条边走不下去时直接把这条边接在失配函数的对应边上。

废话少说上代码~

1 #include
2 #include
3 #include
4 #include
5 #include
6 //#include
7 using namespace std; 8 9 #define maxt 1000011 10 #define maxs 500011 11 #define maxc 26 12 int n; 13 char s[maxs],T[maxt];int Case; 14 struct Trie 15 { 16 int size,ch[maxs][maxc],fail[maxs],last[maxs],val[maxs],ans;bool vis[maxs]; 17 void clear() 18 { 19 memset(ch[0],0,sizeof(ch[0])); 20 memset(vis,0,sizeof(vis)); 21 val[0]=0;size=0;ans=0; 22 } 23 int idx(char c) { return c-'a';} 24 void insert(char* s) 25 { 26 int now=0,ls=strlen(s); 27 for (int i=0;i
View Code

 

转载于:https://www.cnblogs.com/Blue233333/p/7471393.html

你可能感兴趣的文章
java语言的特点
查看>>
关于动态添加iview admin路由以及刷新侧边栏
查看>>
ApplicationInsights的探测器尝鲜
查看>>
java 解析Json格式数据
查看>>
unix中的线程池技术详解
查看>>
CSS简介
查看>>
常用三大软件评价1
查看>>
MVC各层介绍使用---初步理解
查看>>
单例对象的创建与销毁
查看>>
知识点关键词(记录一下)
查看>>
国际结算业务
查看>>
嵌套循环概念
查看>>
C# 生成订单号的几种方式
查看>>
IOS开发札记
查看>>
1.2.2 OSI参考模型 上
查看>>
centos服务器设置代理上网的方法
查看>>
Spring入门教程:通过MyEclipse开发第一个Spring项目
查看>>
【转】你可能不知道的Shell
查看>>
廖雪峰Java1-2程序基础-1基本结构
查看>>
golang下的grpc
查看>>