AC自動機 模板

2021-10-24 17:32:16 字數 899 閱讀 7661

題目描述

給定 n 個模式串 si 和乙個文字串 t ,求有多少個不同的模式串在文字串**現過。兩個模式串不同當且僅當它們的編號不同

輸入格式

第一行是乙個整數,表示模式串的個數 n

第 2 到第 (n+1) 行,每行乙個字串,第 i+1 行的字串表示編號為 i 的模式串 si.

最後一行是乙個字串,表示文字串 t.

輸出格式

乙個答案

輸入輸出樣例

輸入:3a

aaaa

aaa

輸出:

3

**:

public class main 

public static int idx(char c)

public static void tire_insert(string s,int v)

while (!queue.isempty()) else }}

}public static int tire_query(string s)

}return res;}}

public static void main(string args)

tire.tire_build();

string t = input.next();

system.out.println(tire.tire_query(t));

}}

AC自動機模板

ac自動機模板 ac自動機模板 使用方法 1 init 初始化函式 2 insert str 插入字串函式 3 build 構建ac自動機 4 query str 返回出現的字串個數 使用需注意事項 1 注意輸入的字元的範圍,需對next和其二維大小及相關引數進行更改 2 注意next fail和e...

AC自動機模板

ac自動機主要是用於多模式串的匹配問題,按照我的理解,ac自動機就是在tire樹上實現kmp演算法,由於ac自動機加入了失敗指標,所以可以把他看成乙個狀態轉移的圖。給出模板 include include include include includeusing namespace std cons...

模板 AC自動機

我覺得ac自動機的難點和核心是構建失敗指標,父親的失敗指標的兒子 son2 中有和兒子 son1 相同的,即為son1的失敗指標 例 還是有個不懂的地方 第90行,跪求大佬賜教 include include include include include include include inclu...