題意:輸出出現模式串的id,還是用end記錄id就可以了。
本題有個關鍵點:「以上字串中字元都是ascii碼可見字元(不包括回車)。」 -----也就說ac自動機的trie樹需要128個單詞分支。
#include #include #include using namespace std;
const int maxw = 210 *500 + 10;
const int sigma_size = 128;
const int maxl = 10000 + 10;
struct trie{
int next[maxw][sigma_size],fail[maxw],end[maxw];
int root,l;
int newnode(){
for(int i=0;iq;
fail[root]=root;
for(int i=0;i
HDU 2896 AC自動機模板題
題目鏈結 題目大意 多個模式串。多個匹配串。其中串的字元範圍是 0 127 問匹配串中含有哪幾個模式串。解題思路 ac自動機模板題。注意一下字元範圍。cnt記錄這個模式串的個數改為這個模式串的index。find的時候,把找到的index壓入vector裡面即可。注意有多個匹配串,每次find之後會...
hdu2896 AC自動機模板)
ac自動機模板題 下面說幾個注意點 1 題目中說字元是可見字元,可見字元的asc碼是32 127 由於不清楚這一點wa了無數次 2 發現ac自動機網上 都是用指標來寫的,我這裡提供靜態陣列的寫法 如下 include include include include include include i...
HDU2896 AC自動機 模板
思路 因為不同病毒特徵碼不會相同。ac自動機,然後對於每乙個輸出即可。注意 以上字串中字元都是ascii碼可見字元 不包括回車 g mle。include include include include include includeusing namespace std const int n 1...