题意:自己百度吧!!
分析:就是通过它的fail指针来找出它的子串就行了,这题其实不难的。这好像还是金华邀请赛的题哦!
代码实现:
#include<cstdio> #include<cstring> #include<cstdlib> #include<iostream> #include<queue> using namespace std; struct node{ int next[26]; int fail; int num; void init() { memset(next,0,sizeof(next)); fail=0; num=0; } }a[3000010]; char keyword[2600][1200]; char S[5200001],temp[5200001]; int visited[3505]; int tot,n; int ok[3000010]; void chushihua()//初始化 { tot=0; a[0].init(); memset(visited,0,sizeof(visited)); } void insert(char *str,int biaohao)//建立字典树 { int index,p=0; for(;*str!='