博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【AC自动机】zoj3228 Searching the String
阅读量:6786 次
发布时间:2019-06-26

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

对所有模式串建立AC自动机。

每个单词结点要记录该单词长度。

然后在跑匹配的时候,对每个单词结点再处理3个值,代表可重叠的匹配次数,不可重叠的匹配次数,以及“上一次不可重叠的匹配位置”,这样结合单词长度就能保证不重叠。有多个重叠时,取靠前的位置更优。

Update:加了个优化,仅当某个结点的字符串的后缀可能是单词的时候,才会顺着fail指针往回跳。

#include
#include
#include
using namespace std;queue
q;bool word[601000];int child[601000][26],fail[601000],size,pos[101000];int cnta[601000],cntb[601000],posn[601000],lens[601000];void Insert(char S[],int id){ int len=strlen(S); int now=0; for(int i=0;i

转载于:https://www.cnblogs.com/autsky-jadek/p/6506324.html

你可能感兴趣的文章
nginx 禁止IP访问
查看>>
linux挂载磁盘
查看>>
家居建材企业信息化管理路在何方?
查看>>
如何使用XManager下的Xshell远程连接linux
查看>>
CentOS7虚拟机开机后提示ABRT has detected 1 problem(s)……
查看>>
Linux下安装weblogic(远程图形界面版)
查看>>
Oracle中SQL语句执行效率的查找与解决
查看>>
MySQL数据库忘记root密码的2种解决方法
查看>>
基于J2EE的flv流媒体服务器搭建
查看>>
mariaDB主从复制与mysql-porxy读写分离
查看>>
netty4.0与3.x的更新点
查看>>
Centos 5.7 ext3升级ext4
查看>>
servelt异常错误处理
查看>>
经验分享(2)
查看>>
mybatis 一对一对多多表联查-demo
查看>>
SQL Server阻塞定位
查看>>
OPSF总结
查看>>
BGP Route Reflectors and Route Filters
查看>>
Openstack ocata+Ceph12+centos7
查看>>
第八周作业
查看>>