博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AC自动机
阅读量:5307 次
发布时间:2019-06-14

本文共 1185 字,大约阅读时间需要 3 分钟。

重新做了下hdu2222,结果WA。。后来发现加数据了,有重复单词,感觉这种做法真无聊。

贴下模版部分:

struct node {    int ct;    node *pre, *next[26];    void init() {        ct = 0;        pre = 0;        memset(next, 0, sizeof(next));    }};int cnt; //节点总数node *root, trie[500010];node *queue[500010];void insertStr(node *root, char *str) {    int index, len = strlen(str);    for(int i = 0; i < len; i++) {        index = str[i]-'a';        if(root->next[index] == 0) {            root->next[index] = &trie[++cnt];            root->next[index]->init();        }        root = root->next[index];    }    root->ct++;}void buildAC() {    int head, tail;    node *u, tmp;    queue[0] = root;    root->pre = root;    head = tail = 0;    while(head <= tail) {        u = queue[head++];        for(int i = 0; i < 26; i++) {            if(u->next[i] == 0) {                if(u == root)  u->next[i] = root;                else  u->next[i] = u->pre->next[i];            }            else {                if(u == root)  u->next[i]->pre = root;                else  u->next[i]->pre = u->pre->next[i];                queue[++tail] = u->next[i];            }        }    }}

 

转载于:https://www.cnblogs.com/fCarver7/archive/2012/09/20/2695370.html

你可能感兴趣的文章
MySQL 数据库 -- 数据操作
查看>>
PHP 事件机制(2)
查看>>
[Bzoj1047][HAOI2007]理想的正方形(ST表)
查看>>
mysql导入hbase
查看>>
JavaScript中null和undefined的总结
查看>>
Python开发环境Spyder安装方法
查看>>
Web测试实践——每日例会记录12.30(2)
查看>>
Python内置函数(16)——ord
查看>>
USBIP --ubuntu 10.04(USB局域网共享)
查看>>
网络命令之 ss
查看>>
oracle 导入导出
查看>>
python之路,day6-面向对象
查看>>
Groovy中String转换Gstring用于动态插值
查看>>
查看dmesg,会打出很多的日志“TCP: too many of orphaned sockets”
查看>>
Oracle
查看>>
IT行业始接触
查看>>
Python基础知识点小结
查看>>
MVC利用Routing实现多域名绑定一个站点、二级域名以及二级域名注册Area
查看>>
shell脚本快速入门
查看>>
arch初步美化及各种问题
查看>>