AC自動機 搜尋關鍵詞

2021-10-03 01:13:02 字數 1075 閱讀 6558

給定 n 個長度不超過 50 的由小寫英文本母組成的單詞,以及一篇長為 m 的文章。

請問,有多少個單詞在文章**現了。

輸入格式

第一行包含整數 t,表示共有 t 組測試資料。

對於每組資料,第一行乙個整數 n,接下去 n 行表示 n 個單詞,最後一行輸入乙個字串,表示文章。

輸出格式

對於每組資料,輸出乙個佔一行的整數,表示有多少個單詞在文章**現。

資料範圍

1 ≤n

≤104

1≤n≤10^4

1≤n≤10

4,1 ≤m

≤106

1≤m≤10^6

1≤m≤10

6輸入樣例:15

shehe

sayshr

heryasherhs

輸出樣例:

3第一道ac自動機的題,相對於kmp,ac自動機就是把一維的資訊放在了樹上來進行統計了。

#include

using

namespace std;

const

int n=

1e4+

7,s=

55,m=

1e6+7;

int ne[n*s]

,con[n*s]

,tr[n*s][26

],cnt;

char str[m]

;queue<

int> q;

void

insert()

con[p]++;

}void

build()

while

(!q.

empty()

)}}}

intmain()

scanf

("%s"

,str)

;build()

;int res=0;

for(

int i=

0,j=

0;str[i]

;i++)}

cout<}return0;

}

關鍵詞匹配(Ac自動機模板題)

time limit 1 sec memory limit 128 mb submit 10 solved 4 submit status web board 給你n個單詞,然後給定乙個字串,問一共有多少單詞在這個字串中出現過 輸入相同的字串算不同的單詞,同乙個單詞重複出現只計一次 第一行乙個整數n...

敏感詞遮蔽 AC自動機

上一周我們講了trie樹,這次的ac自動機是trie樹的乙個改進版,也是乙個多模式串匹配演算法。ac自動機 找尋符合條件的字尾。1 首先我們構建乙個如圖的trie樹 如下圖 2 在學習kmp演算法的時候,我們說到了好字首的字首子串和字尾子串匹配。在trie樹中,我們借鑑這個思路,如果出現了不匹配字元...

AC自動機 建立nlogn個AC自動機

string set queries 題意 給你3種操作,1 加入乙個串到集合中。2 刪除集合中的某乙個串 3 查詢集合中的字串在給定的字串種出現幾次。同乙個串可重複 解法 建立多個ac自動機,用二進位制分組來處理。加入給你21個串 分為 16 4 1,再新增乙個串的時候,即21 1,22 16 4...