文化类网站建设福州seo推广外包
news/
2025/10/6 19:58:02/
文章来源:
文化类网站建设,福州seo推广外包,上海云职企业服务是干什么的,wordpress侧边栏按钮网上很多代码都略显繁琐#xff0c;看了一下yy dalao的代码感觉很好#xff0c;但他懒得打题解#xff08;好吧我也是 以0为根节点的话#xff0c;我把yy的一段代码删了改用fail[c]x0?0:ch[fail[x]][i];来实现特判#xff0c;效果还不错#xff01;也算是AC自动机的模版… 网上很多代码都略显繁琐看了一下yy dalao的代码感觉很好但他懒得打题解好吧我也是 以0为根节点的话我把yy的一段代码删了改用fail[c]x0?0:ch[fail[x]][i];来实现特判效果还不错也算是AC自动机的模版题吧用了一个id数组来储藏每一个特征码的最后一个字符所在位置再用vis来看网站源码中有哪条特征码即哪条特征码的id被访问到) 1 #includecstdio2 #includecstring3 using namespace std;4 char s[205],t[10005];5 int fail[100001],q[100002],ch[100002][130],val[100002],id[505],vis[100002];6 int sz0,ans0,n;7 void trie(int x)8 {9 int u0,mstrlen(s);
10 for(int i0;im;i)
11 {
12 int cs[i];
13 if(!ch[u][c])
14 ch[u][c]sz;
15 uch[u][c];
16 }
17 id[x]u;
18 val[u];
19 }
20 void makefail()
21 {
22 int head0,tail1;
23 q[1]0;fail[0]0;
24 while(head!tail)
25 {
26 int xq[head];if(head100000)head0;
27 for(int i0;i128;i){
28 int cch[x][i];
29 if(!c){ch[x][i]ch[fail[x]][i];continue;}
30 q[tail]c;if(tail100000)tail0;
31 fail[c]x0?0:ch[fail[x]][i];
32 }
33 }
34 }
35 void ac(int x)
36 {
37 int f0,k0,lenstrlen(t);
38 memset(vis,0,sizeof(vis));
39 for(int i0;ilen;i){
40 int ut[i];
41 kch[k][u];
42 for(int jk;j;jfail[j]){if(val[j]){f1;vis[j]1;}}
43 }
44 if(!f)return;
45 ans;printf(web %d:,x);
46 for(int i1;in;i)
47 if(vis[id[i]])printf( %d,i);
48 printf(\n);
49 }
50 int main()
51 {
52 int m;
53 scanf(%d,n);
54 for(int i1;in;i){
55 scanf(%s,s);
56 trie(i);
57 }
58 makefail();
59 scanf(%d,m);
60 for(int i1;im;i)
61 {
62 scanf(%s,t);
63 ac(i);
64 }
65 printf(total: %d\n,ans);
66 return 0;
67 } hdu2896 转载于:https://www.cnblogs.com/JKAI/p/6914583.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/929650.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!