hdu 2222 ac自動機模板

2021-07-04 12:56:13 字數 761 閱讀 6850

題意:

題意:給出n個串,然後給一篇文章,問這n個串有多少個在文章裡面出現過。。。

trick:n個串可能有相同的,需按照不同串處理。

剛學ac自動機,沒學明白,這**也是照著別人部落格寫的,弱爆--#

#include #include #include #include #include using namespace std;

char str[1000000+100];

struct node

}*root;

void insert()

else

p=p->next[id];

}p->count++;

}void getfail()

p=p->fail;

}if(!p)

son->fail=root;

}que.push(son);}}

}}void query()

else break;

temp=temp->fail;}}

printf("%d\n",cnt);

}int main()

{ int t;

scanf("%d",&t);

while(t--)

{root=new node;

root->init();

root->fail=null;

int n;

scanf("%d",&n);

getchar();

for(int i=0;i

hdu2222 (AC自動機模板)

題 學習出 主要是fail的建立。在跳的過程就是不斷跳fail,而不是跳到乙個fail再往下!include include include include include using namespace std typedef long long ll const int m 2e6 6 int ...

HDU2222 AC自動機 入門模板

hdu 222 keywords search ac 自動機入門模板題 調了一下午 因為輸入最後乙個字串打成了 d還有兩處取反符號打錯 wa了無數次 血淚史 以後要注意 ac自動機思路 這個演算法的目的 用幾個給定的模式串去在乙個串 t 中匹配 簡單概括實現方式 1.對所有的模式串建trie樹。2....

HDU2222(AC自動機模板題)

aho corasick automaton,該演算法在1975年產生於貝爾實驗室,是著名的多模匹配演算法。ac自動機是字典樹和kmp的結合。可以解決的問題 給定多個單詞,再給乙個字串,問有多少個單詞在這個字串中出現過。這個問題可以用kmp挨個串匹配,但是如果單詞數目多的話肯定會超時。數中節點 st...