重習 AC 自動機

2022-05-03 07:18:10 字數 745 閱讀 5375

發現已經忘了許多。。。。於是複習一下

【jsoi2007】文字生成器:給你若干個模式串,求至少包含乙個模式串的長度為 \(m\) 的文字串個數。

【poj 2778】dna sequence:給定 \(n\) 個禁止串,求長度為 \(m\) 且不含任何乙個禁止串的字串個數。\(1\le m\le 2\times 10^9\)

【codeforces 163e】e-government:給定 \(k\) 個字串 \(s_1, s_2, \cdots, s_k\),要求維護乙個字串集 \(s\),一開始 \(k\) 個字串都在 \(s\) 中,現有 \(n\) 次操作,每次會加入或移除 \(k\) 個字串中的乙個,或者詢問乙個文字串求出 \(s\) 中每個串匹配次數之和。

給定 \(n\) 個禁止串,求是否存在無限長的串,不包含任意乙個禁止串。

給定乙個字串 \(t\) 以及 \(n\) 個模式串 \(s_1, s_2, \cdots, s_n\)。設 \(f(s, t)\) 為字串 \(t\) 在 \(s\) 中的出現次數,\(s_i+s_j\) 表示 \(s_i\) 在後面追加 \(s_j\) 所得到的字串。求 \(\sum_f(t, s_i+s_j)\)。

AC自動機 建立nlogn個AC自動機

string set queries 題意 給你3種操作,1 加入乙個串到集合中。2 刪除集合中的某乙個串 3 查詢集合中的字串在給定的字串種出現幾次。同乙個串可重複 解法 建立多個ac自動機,用二進位制分組來處理。加入給你21個串 分為 16 4 1,再新增乙個串的時候,即21 1,22 16 4...

AC自動機及字尾自動機

ac自動機是一種基於trie樹的演算法,其本質和kmp上的處理很相似。trie樹結構 kmp轉移思路 ac自動機組要由三個部分組成 trie樹的建立 fail指標的匹配 對ac自動機的詢問 每次建立自動機會有一次初始化 ac自動機類 struct node node結構體 struct ac voi...

AC自動機演算法

ac自動機簡介 首先簡要介紹一下ac自動機 aho corasickautomation,該演算法在1975年產生於貝爾實驗室,是著名的多模匹配演算法之一。乙個常見的例子就是給出n個單詞,再給出一段包含m個字元的文章,讓你找出有多少個單詞在文章裡出現過。要搞懂ac自動機,先得有字典樹trie和kmp...