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

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

AC自动机模板2

题目

myAC自动机

code

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define rg register#define il inline#define lst long long#define ldb long double#define N 155#define M 10550using namespace std;const int Inf=1e9;int n,tot,cnt;struct STRING{ char s[75]; int sum,num;}S[N];struct EDGE{ int to,nxt;}ljl[M];int hd[M];char T[1000050];int End[N],sum[M];int trie[M][26],fail[M];il int read(){ rg int s=0,m=0;rg char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')m=1;ch=getchar();} while(ch>='0'&&ch<='9')s=(s<<3)+(s<<1)+(ch^48),ch=getchar(); return m?-s:s;}il void init(){ tot=0,cnt=0; memset(hd,0,sizeof(hd)); memset(sum,0,sizeof(sum)); memset(fail,0,sizeof(fail)); memset(trie,0,sizeof(trie));}il void AC_Insert(rg char s[],rg int num){ rg int now=0,L=strlen(s); for(rg int i=0;i
Q; while(!Q.empty())Q.pop(); for(rg int i=0;i<26;++i) if(trie[0][i])Q.push(trie[0][i]); while(!Q.empty()) { rg int now=Q.front();Q.pop(); for(rg int i=0;i<26;++i) if(trie[now][i]) { fail[trie[now][i]]=trie[fail[now]][i]; Q.push(trie[now][i]); } else trie[now][i]=trie[fail[now]][i]; }}il void AC_Query(){ rg int now=0,L=strlen(T); for(rg int i=0;i
b.sum;}void dfs(rg int now){ for(rg int i=hd[now];i;i=ljl[i].nxt) dfs(ljl[i].to),sum[now]+=sum[ljl[i].to];}il void AC_get_ans(){ for(rg int i=1;i<=tot;++i) add(fail[i],i); dfs(0); for(rg int i=1;i<=n;++i) S[i].sum=sum[End[i]]; sort(S+1,S+n+1,cmp); printf("%d\n",S[1].sum); for(rg int i=1;i<=n;++i) { if(S[i].sum!=S[1].sum)break; cout<
<

转载于:https://www.cnblogs.com/cjoierljl/p/9365747.html

你可能感兴趣的文章
新的开始
查看>>
java Facade模式
查看>>
NYOJ 120校园网络(有向图的强连通分量)(Kosaraju算法)
查看>>
SpringAop与AspectJ
查看>>
Leetcode 226: Invert Binary Tree
查看>>
http站点转https站点教程
查看>>
解决miner.start() 返回null
查看>>
bzoj 2007: [Noi2010]海拔【最小割+dijskstra】
查看>>
BZOJ 1001--[BeiJing2006]狼抓兔子(最短路&对偶图)
查看>>
C# Dynamic通用反序列化Json类型并遍历属性比较
查看>>
128 Longest Consecutive Sequence 一个无序整数数组中找到最长连续序列
查看>>
定制jackson的自定义序列化(null值的处理)
查看>>
auth模块
查看>>
javascript keycode大全
查看>>
前台freemark获取后台的值
查看>>
log4j.properties的作用
查看>>
游戏偶感
查看>>
Leetcode: Unique Binary Search Trees II
查看>>
C++ FFLIB 之FFDB: 使用 Mysql&Sqlite 实现CRUD
查看>>
Spring-hibernate整合
查看>>