這是一道簡單的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...