ac自動機模版hdu2222

2021-07-15 08:01:22 字數 513 閱讀 8918

剛開始想當然的以為是求單詞們出現了多少次,事實上是有多少單詞出現了

其實,理解了,寫這個不難

三步走1:加單詞建trie

2:get fail和 last陣列

3:套文字開始查詢,延失配邊走即可

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

int n,m,ch[500005][30],val[500005],tot,fail[500005],last[500005];

char wd[55],s[1020000];

bool vis[500005];

inline int idx(char a)

void insert(char *s,int len)

while (!q.empty()) }

}int find(char *s,int len)

{ int ans=0,j=0;

for (int i=0;i

AC自動機入門 hdu 2222

以前還真認為ac自動機就是自動ac機 ac自動機,就是說,多模式匹配串,更像是一種樹上kmp,在學這個之前有一些前置技能 kmp,字典樹。想學ac自動機,字典樹是必須要會的,因為它就是在字典樹上進行操作,但是它比字典樹多了乙個失配指標 fail指標 本來我們要對一些的串進行匹配,那麼我們暴力要乙個乙...

AC自動機初學(模板) HDU 2222

ac自動機這個東西,聽起來很高大上,在高中的時候不知道什麼是自動機,以為寫出了ac自動機就可以自動ac 現在知道了它是用來解決字串匹配問題的東西,說白了就是kmp trie。這個在去年暑假的時候,hc學長也略微提到過,但是沒有具體的講。在解決只有乙個模式串的匹配問題的時候,我們用樸素的kmp演算法即...

hdu 2222 ac自動機模版

include include structnode q 1000010 charss 1010 s 55 voidinsert chars,node root p num voidacmove node root p p fail if p null now next i fail root q ...