模板 AC自動機

2021-07-30 14:59:58 字數 831 閱讀 3306

我覺得ac自動機的難點和核心是構建失敗指標,父親的失敗指標的兒子(son2)中有和兒子(son1)相同的,即為son1的失敗指標

還是有個不懂的地方:第90行,跪求大佬賜教

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

struct tree

}s[500009];

char str[100009],des[100009];

int n,sind=1,stu[500009];

void ins()//構建詢問串trie樹

ind=s[ind].nxt[j];

}s[ind].count++;//增加離根節點這條路徑上字串的個數,一條路上可能不止乙個單詞

}void make_fail()

while(qhfor(int i=0;i<26;i++)}}

}int fd()}}

return cnt;

}int main()

make_fail();

gets(des);

int ans=fd();

printf("%d",ans);

return

0; }

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自動機講解 講的很簡單也很清楚的博文位址 ac自動機理解的部分還是很好理解的,字典樹加上kmp的匹配失敗轉移的思想。只是ac自動機的 部分比較難理解。以下是自己對ac自動機模板以及理解部分。模板 include include include include include include us...