博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ac自动机模版(hdu 5384)
阅读量:4204 次
发布时间:2019-05-26

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

////  main.cpp//  AC自动机////  Created by liuzhe on 16/11/16.//  Copyright © 2016年 my_code. All rights reserved.//#include 
#include
#include
#include
#include
#include
#include
#include
using namespace std;
//hdu 5384struct Trie{
int next[100010][26],fail[210*500],end[210*500]; int root,L; int newnode() {
for(int i = 0;i < 26;i++) next[L][i] = -1; end[L++] = 0; return L-1; } void init() {
L = 0; root = newnode(); } void insert(string buf) {
int len = buf.size(); int now = root; for(int i = 0;i < len;i++) {
if(next[now][buf[i]-'a'] == -1) next[now][buf[i]-'a'] = newnode(); now=next[now][buf[i]-'a']; } end[now]++; } void build() {
queue
Q; fail[root] = root; for(int i = 0;i < 26 ; i++) if(next[root][i] == -1) next[root][i] = root; else {
fail[next[root][i]] = root; Q.push(next[root][i]); } while(!Q.empty()) {
int now = Q.front(); Q.pop(); for(int i = 0;i < 26;i++) if(next[now][i] == -1) next[now][i] = next[fail[now]][i]; else {
fail[next[now][i]] = next[fail[now]][i]; Q.push(next[now][i]); } } } int query(string buf) {
int len = buf.size(); int now = root; int ans = 0; for(int i = 0;i < len;i++) {
now = next[now][buf[i]-'a']; int temp = now; while(temp != root) {
if(end[temp] != root) ans+=end[temp]; temp = fail[temp]; } } return ans; }};string buf[10010];Trie ac;int main(){
//ios::sync_with_stdio(false); int n,m,T; cin>>T; while(T--) {
cin>>n>>m; for(int i=0;i
>buf[i]; ac.init(); for(int i=0;i
>s; ac.insert(s); } ac.build(); for(int i=0;i
//根据kuangbin修改

转载地址:http://scali.baihongyu.com/

你可能感兴趣的文章
刘作虎:一加新品将全系支持 5G
查看>>
滴滴顺风车上线新功能,特殊时期便捷出行
查看>>
不会延期!iPhone 12S预计如期在9月发售:升级三星LTPO屏幕
查看>>
腾讯物联网操作系统TencentOS tiny线上移植大赛,王者机器人、QQ公仔、定制开发板等礼品等你来拿 !
查看>>
为云而生,腾讯云服务器操作系统TencentOS内核正式开源
查看>>
腾讯汤道生:开源已成为许多技术驱动型产业重要的创新推动力
查看>>
微信小程序多端框架 kbone 开源
查看>>
视频质量评估算法 DVQA 正式开源
查看>>
在中国提供了60亿次服务的疫情模块向世界开源 腾讯抗疫科技输出海外
查看>>
在中国提供了60亿次服务的疫情模块向世界开源
查看>>
世界卫生组织与腾讯加深合作 新冠肺炎AI自查助手全球开源
查看>>
Hibernate 中get, load 区别
查看>>
java反射详解
查看>>
JPA 注解
查看>>
JQuery 简介
查看>>
Java创建对象的方法
查看>>
Extjs自定义组件
查看>>
TreeGrid 异步加载节点
查看>>
Struts2 标签库讲解
查看>>
Google Web工具包 GWT
查看>>