HDU2222: Keywords Search AC自动机
来源:互联网 发布:抢小米3软件 编辑:程序博客网 时间:2024/05/18 03:19
挂一个模板题QAQ(其实是我忘了AC自动机怎么写了)
#include<bits/stdc++.h>#define N 500005using namespace std;int T,n,cnt,ans,a[N][27],sum[N],p[N],q[N];bool v[N];char s[N<<1],ss[55];inline void insert(){ scanf("%s",ss); int x=1,c,l=strlen(ss); for (int i=0;i<l;i++) { c=ss[i]-'a'+1; if (a[x][c]) x=a[x][c]; else x=a[x][c]=++cnt; } sum[x]++;}inline void build_fail(){ int t=0,w=1,x; q[1]=1; p[1]=0; while (t<w) { x=q[++t]; for (int i=1;i<=26;i++) if (a[x][i]) { int k=p[x]; while (!a[k][i]) k=p[k]; p[a[x][i]]=a[k][i]; q[++w]=a[x][i]; } }}inline void Ac_machine(){ scanf("%s",s); int x=1,c,l=strlen(s); for (int i=0;i<l;i++) { c=s[i]-'a'+1; v[x]=1; while (!a[x][c]) x=p[x]; x=a[x][c]; if (!v[x]) for (int j=x;j;j=p[j]) ans+=sum[j],sum[j]=0; }}int main(){ scanf("%d",&T); while (T--) { scanf("%d",&n); cnt=1; ans=0; for (int i=1;i<=26;i++) a[0][i]=1; for (int i=1;i<=n;i++) insert(); build_fail(); Ac_machine(); printf("%d\n",ans); for (int i=1;i<=cnt;i++) { p[i]=sum[i]=v[i]=0; for (int j=1;j<=26;j++) a[i][j]=0; } } return 0;}
0 0
- [AC自动机]hdu2222 Keywords Search
- HDU2222 Keywords Search AC自动机
- 【hdu2222】【AC自动机】Keywords Search
- HDU2222 Keywords Search AC自动机
- HDU2222 Keywords Search AC自动机
- [HDU2222] Keywords Search && AC自动机
- HDU2222 Keywords Search AC自动机
- HDU2222 Keywords Search【AC自动机】
- AC自动机 - hdu2222 Keywords Search
- HDU2222-Keywords Search AC自动机
- AC自动机 hdu2222 Keywords Search
- 【AC自动机】[HDU2222]Keywords Search
- HDU2222: Keywords Search AC自动机
- 【AC自动机】Hdu2222:Keywords Search
- HDU2222 Keywords Search [AC自动机]
- 【HDU2222】Keywords Search(AC自动机)
- Keywords Search hdu2222 ac自动机
- hdu2222 Keywords Search(ac自动机)
- 150_反转(开关问题) Face the right way (POJ No.3276)
- 解决使用Androidandroidannotations 配置时 Eclipse 不出现 Annotation Processor Factory
- 删除Target 重名的问题...
- 2016春《嵌入式系统及应用》紧张筹备中
- 何时使用section标签
- HDU2222: Keywords Search AC自动机
- 加载slidingmenu出错,找不到android-support-v4
- 【Leetcode】Invert Binary Tree
- 缩短浏览器上页面渲染
- OSX 10.11 系统下安装mcrypt插件
- 回调函数...
- FragmentTabHost使用方法
- 深入理解Tomcat 6和Tomcat7的区别
- Mac 下配置 Latex 支持中文