AC自動機模板1 洛谷3808

2022-03-20 09:51:04 字數 992 閱讀 2000

這是一道簡單的ac自動機模版題。

用於檢測正確性以及演算法常數。

為了防止卡oj,在保證正確的基礎上只有兩組資料,請不要惡意提交。

題目描述

給定n個模式串和1個文字串,求有多少個模式串在文字串裡出現過。

第一行乙個n,表示模式串個數;

下面n行每行乙個模式串;

下面一行乙個文字串。

乙個數表示答案

輸入樣例#1:2a

aaaa

輸出樣例#1:subtask1[50pts]:∑length(模式串)<=106,length(文字串)<=106,n=1;

subtask2[50pts]:∑length(模式串)<=106,length(文字串)<=106;

蒟蒻ac自動機學得還不夠好,所以暫時只是放乙個模板在這裡。

等小蒟蒻做熟之後再寫ac自動機的講解

注釋還是挺詳細的

#include#include#include#include#include#include#includeusing namespace std;

struct tree//字典樹

ac[1000000];//trie樹

int cnt=0;//trie的指標

inline void build(string s)

}while(!q.empty())//bfs求fail指標

else//不存在這個子節點

ac[u].vis[i]=ac[ac[u].fail].vis[i];

//當前節點的這個子節點指向當

//前節點fail指標的這個子節點 }}

}int ac_query(string s)//ac自動機匹配

ac[0].fail=0;//結束標誌

get_fail();//求出失配指標

cin>>s;//文字串

cout

}

洛谷 3808 模板 AC自動機(簡單版)

題目傳送門 終於看懂啦!終於學會了ac自動機啦!flag立起 寫篇部落格梳理一下自己的思路吧。在文章的開頭,必須先放上一些大佬的部落格來壓壓場面 當然是orz zzk大佬,神犇傳送門 然而ac自動機的原理其實是比較好理解的,就是把trie樹和kmp的思想結合起來。這麼說起來kmp就是單個字串的ac自...

洛谷3808 模板 AC自動機(簡單版)

題目大意 給定 n 個模式串 p sum p i le10 6 和乙個 t t le10 6 求在 t 中被匹配的 p 的個數。思路 ac自動機模板題,注意 t 中乙個字元可能對應自動機上多個結點,因此需要按照失配指標跳轉統計。統計過的結點需要特殊標記,避免重複統計,否則會超時。1 include2...

AC自動機 洛谷P3808 AC自動機(簡單版)

給定 n n 個模式串和1個文字串,求有多少個模式串在文字串裡出現過 多模匹配用ac role presentation aca c自動機 首先建造一棵字典樹,新增所有模式串,然後建造失配指標,最後進行匹配 luogu judger enable o2 include include include...