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

2021-07-16 16:28:33 字數 938 閱讀 8828

time limit: 1 sec  memory limit: 128 mb

submit: 10  solved: 4

[submit][status][web board]

給你n個單詞,然後給定乙個字串,問一共有多少單詞在這個字串中出現過(輸入相同的字串算不同的單詞,同乙個單詞重複出現只計一次)。

第一行乙個整數n,表示給定單詞的個數。

接下來n行,每行輸入乙個長度不超過50且全由小寫字母組成的單詞。

最後一行輸入乙個長度不超過1000000的字串。

n≤10000

輸出一行包含乙個整數,表示共在給定字串中出現過的單詞個數。

5

shehe

sayshr

heryasherhs

3
題解:裸ac自動機,不會的可以去看看這個部落格:

1 #include2 #include3 #include4

#define maxn 1000005

5#define maxm 1000005

6using

namespace

std;

7int n,tot,head,tail,son[maxm][26

],fai[maxm],sum[maxm],list[maxm];

8char

s[maxn];

9void

clear()

14void insert(char *s)

19void

failed() 31}

32}33void work(char *s)

40 printf("

%d\n

",ans);41}

42int

main()

43

view code

AC自動機 搜尋關鍵詞

給定 n 個長度不超過 50 的由小寫英文本母組成的單詞,以及一篇長為 m 的文章。請問,有多少個單詞在文章 現了。輸入格式 第一行包含整數 t,表示共有 t 組測試資料。對於每組資料,第一行乙個整數 n,接下去 n 行表示 n 個單詞,最後一行輸入乙個字串,表示文章。輸出格式 對於每組資料,輸出乙...

AC自動機模板題

5分鐘打乙個,還是手太生。嘛這個東西單獨搞是沒有難度的 與其他演算法結合起來才是 黑上加黑 光速逃 願意的話可以看看徐大佬的部落格 include define maxn 1000005 using namespace std int n,len,u,ch maxn 29 tot,fail maxn...

AC自動機之模板題

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