AC自動機(模板)

2021-10-09 08:35:13 字數 1213 閱讀 4918

用於解決多模式串匹配

#include

using namespace std;

const

int maxn =

1e5+7;

struct trie

void

init()

void

insert

(char

*buf)

end[now]++;

}void

build()

while

(!q.

empty()

)}}int

query

(string buf)

}return res;

}void

debug()

}};char str[maxn]

;trie ac;

string pat;

例題:hdu 2222

第一行輸入測試資料的組數,然後輸入乙個整數n,接下來的n行每行輸入乙個單詞,最後輸入乙個字串,問在這個字串中有多少個單詞出現過。

求目標串**現了幾個模式串

#include

using namespace std;

const

int maxn =

1e5+7;

struct trie

void

init()

void

insert

(char

*buf)

end[now]++;

}void

build()

while

(!q.

empty()

)}}int

query

(string buf)

}return res;

}void

debug()

}};char str[maxn]

;trie ac;

string pat;

intmain()

} cin >> pat;

ac.build()

;int ans = ac.

query

(pat)

;printf

("%d\n"

, ans);}

return0;

}

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...