剛開始想當然的以為是求單詞們出現了多少次,事實上是有多少單詞出現了
其實,理解了,寫這個不難
三步走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 ...