hdu 5384 Danganronpa
来源:互联网 发布:ubuntu安装deb包打开 编辑:程序博客网 时间:2024/06/06 13:58
#include<cstring>#include<cstdio>#include<iostream>#include<cmath>#include<algorithm>#include<queue>#define INF 0x3f3f3f3f#pragma comment(linker, "/STACK:1024000000,1024000000")using namespace std;typedef long long LL;const int SIGMA_SIZE=26;const int MAXN=100010;const int MAXNODE=600010;const LL MOD= 258280327;int T,N,M;LL ans;string str1[MAXN],str2[MAXN];struct AC{ int ch[MAXNODE][SIGMA_SIZE],f[MAXNODE],sz; LL val[MAXNODE]; void init(){ memset(ch[0],0,sizeof(ch[0])); val[0]=0; sz=1; } inline int idx(char c){ return c-'a'; } void insert(string s){ int u=0,len=s.size(); for(int i=0;i<len;i++){ int c=idx(s[i]); if(!ch[u][c]){ memset(ch[sz],0,sizeof(ch[sz])); val[sz]=0; ch[u][c]=sz++; } u=ch[u][c]; } val[u]++; } void get_fail(){ queue<int> q; f[0]=0; for(int c=0;c<SIGMA_SIZE;c++){ int u=ch[0][c]; if(u){ f[u]=0; q.push(u); } } while(!q.empty()){ int r=q.front(); q.pop(); for(int c=0;c<SIGMA_SIZE;c++){ int u=ch[r][c]; if(!u){ ch[r][c]=ch[f[r]][c]; continue; } q.push(u); f[u]=ch[f[r]][c]; val[u]+=val[f[u]]; } } } void find(string T){ int j=0; int len=T.size(); for(int i=0;i<len;i++){ int c=idx(T[i]); j=ch[j][c]; ans+=val[j]; } }}ac;int main(){ #ifndef ONLINE_JUDGE freopen("in.txt","r",stdin); freopen("out.txt", "w", stdout); #endif // ONLINE_JUDGE scanf("%d",&T); while(T--){ scanf("%d%d",&N,&M); for(int i=1;i<=N;i++) cin>>str1[i]; for(int i=1;i<=M;i++) cin>>str2[i]; ac.init(); for(int i=1;i<=M;i++) ac.insert(str2[i]); ac.get_fail(); for(int i=1;i<=N;i++){ ans=0; ac.find(str1[i]); printf("%I64d\n",ans); } } return 0;}
0 0
- hdu 5384 Danganronpa
- HDU 5384 Danganronpa
- HDU 5384 Danganronpa
- HDU 5384 Danganronpa
- HDU 5384 Danganronpa【AC自动机】
- hdu 5384 Danganronpa (ac自动机)
- hdu 5384 Danganronpa AC自动机
- hdu 5384 Danganronpa (ac自动机)
- hdu 5384 Danganronpa(AC自动机)
- HDU 5384 Danganronpa AC自动机
- HDU Danganronpa
- Danganronpa HDU
- hdu 5384 Danganronpa(字典树)
- 【HDU 5384】Danganronpa(AC自动机)
- hdu 5384 Danganronpa (字典树/AC自动机)
- HDU 5384 Danganronpa(AC自动机)
- HDU 5384 Danganronpa(AC自动机)
- hdu 5384 Danganronpa(AC自动机)
- 判断IP地址,MAC地址合法性-C语言
- CSU 1204 Rectangles (二分)
- HDOJ 1285 确定比赛名次(拓扑排序,四种实现方法)
- Eclipse 用maven构建web项目
- 状态压缩dp入门[HDU1074][HDU1065][POJ3254][POJ1185][HDU4359][POJ3311][POJ2411]
- hdu 5384 Danganronpa
- BLE 天线容易忽略的小知识
- python 之 解决输出中文字符乱码
- PHP的内存泄露问题与垃圾回收
- 使用cxf发布webservice总结
- 如何实现多线程下载文件
- Markdown
- c#异步调用和回调
- 系统调用简析————open一个设备