洛谷P3808 模板 AC自動機(簡單版)

2021-09-28 13:45:40 字數 1002 閱讀 4881

給定n個模式串和1個文字串,求有多少個模式串在文字串裡出現過。

第一行乙個n,表示模式串個數;

下面n行每行乙個模式串;

下面一行乙個文字串。

乙個數表示答案

輸入

2aaa

aa

輸出

2
ac自動機模板 題

#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;

typedef long long ll;

typedef double ld;

const int maxn = 2*1e6+9;

int trie[maxn][26]; //字典樹

int cntword[maxn]; //記錄該單詞出現次數

int fail[maxn]; //失敗時的回溯指標

int cnt = 0;

void insertwords(string s)

}//fail[now] ->當前節點now的失敗指標指向的地方

tire[now][i] -> 下乙個字母為i+'a'的節點的下標為tire[now][i]

while(!q.empty())

else//否則就讓當前節點的這個子節點

//指向當前節點fail指標的這個子節點

trie[now][i] = trie[fail[now]][i];}}

}int query(string s)

fail[0] = 0;

getfail();

cin >> s ;

cout << query(s) << endl;

return 0;

}

AC自動機入門,洛谷P3808

給定n個模式串和1個文字串,求有多少個模式串在文字串裡出現過。輸入輸出格式 輸入格式 第一行乙個n,表示模式串個數 下面n行每行乙個模式串 下面一行乙個文字串。輸出格式 乙個數表示答案 輸入輸出樣例 輸入樣例 1 2aaa aa輸出樣例 1 兩個會出現在模板題面裡的詞語 文字串和模式串 給你幾個單詞...

洛谷P3808 模板 AC自動機(簡單版)

這是一道簡單的ac自動機模板題。用於檢測正確性以及演算法常數。為了防止卡oj,在保證正確的基礎上只有兩組資料,請不要惡意提交。給定n個模式串和1個文字串,求有多少個模式串在文字串裡出現過。輸入格式 第一行乙個n,表示模式串個數 下面n行每行乙個模式串 下面一行乙個文字串。輸出格式 乙個數表示答案 輸...

洛谷P3808 模板 AC自動機(簡單版)

給定n個模式串和1個文字串,求有多少個模式串在文字串裡出現過。輸入格式 第一行乙個n,表示模式串個數 下面n行每行乙個模式串 下面一行乙個文字串。輸出格式 乙個數表示答案 include using namespace std int const n 1000005 int const m 1000...