AC自動機模板題

2021-10-04 19:47:22 字數 795 閱讀 6119

5分鐘打乙個,還是手太生。。。。

嘛這個東西單獨搞是沒有難度的

與其他演算法結合起來才是(黑上加黑(光速逃))

願意的話可以看看徐大佬的部落格

#include

#define maxn 1000005

using

namespace std;

int n,len,u,ch[maxn][29

],tot,fail[maxn]

,judge[maxn]

,ans[maxn]

,sum;

char a[maxn *2]

;void

init()

ans[u]++;

}for

(int i =

0; i <

26; i++

)ch[0]

[i]=1;

queue<

int>q;q.

push(1

);fail[1]

=0;while

(!q.

empty()

) fail[ch[u]

[i]]

= ch[fail[u]

][i]

; q.

push

(ch[u]

[i]);}

}}void

que(

) u =ch[u]

[a[i]

-'a'];

} cout<}int

main()

AC自動機之模板題

hdu 2222 可以先看ac自動機入門教程 題意 輸入幾個字串,乙個文字串,查詢文字串 現過幾個字串 理解 很基礎的板子題,直接套板子就可以匹配了 include include include include include include include include using names...

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