设为首页 加入收藏

TOP

AC自动机简单题(二)
2013-07-23 09:07:18 来源: 作者: 【 】 浏览:533
Tags:动机 简单


    //  while(u && !c[u][k]) u = f[u]; // 改造后的AC自动机,这句话不用写
    u = c[u][k];
    for(j = u; j; j = f[j]) {
    for(int k = 0; k < id[j].size(); k++)
    cnt[id[j][k]]++;
    }
    }
    }
    }ac;
    int main() {
    int i, j;
    while( ~scanf("%d", &n) && n) {
    ac.init();
    memset(cnt, 0, sizeof(cnt));
    for(i = 1; i <= n; i++) {
    scanf("%s", str[i]);
    ac.insert(str[i], i);
    }
    ac.getfail();
    scanf("%s", s);
    ac.find(s);
    int ans = 0;
    for(i = 1; i <= n; i++)
    if(ans < cnt[i]) ans = cnt[i];
    printf("%d\n", ans);
    for(i = 1; i <= n; i++)
    if(ans == cnt[i]) puts(str[i]);
    }
    return 0;
    }

      

首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇实例看病要排队 优先队列 下一篇用STL的函数生成全排列

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: