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

2021-10-02 14:17:31 字數 1005 閱讀 1493

學習1:小蒟蒻yyb的部落格

學習2:大佬的板子

ac自動機:求多個模式串在文字串**現的次數

;//trie樹 根節點為0

int cnt =0;

//編號

void

clear

(int x)

void

build

(string s)

now = ac[now]

.vis[s[i]

-'a'];

} ac[now]

.end++

;//標記單詞結尾

} queue<

int> q;

void

get_fail()

}while

(!q.

empty()

)else}}

}int

ac_query

(string s)

}return ans;

}void

init()

}using

namespace ac;

string s;

intmain()

get_fail()

;//求出失配指標

cin >> s;

cout <<

ac_query

(s)<< endl;

return0;

}

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

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

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

題意 給定n個模式串和1個文字串,求有多少個模式串在文字串裡出現過。思路 建完tire,fail之後,開始跑自動機,然後對於走過的點,給乙個標記,防止多次計算即可 為啥呢,因為求得是有多少模式串在文字串出現過,而不是出現次數 1 include2 using namespace std 3const...

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

給定n個模式串和1個文字串,求有多少個模式串在文字串裡出現過。第一行乙個n,表示模式串個數 下面n行每行乙個模式串 下面一行乙個文字串。乙個數表示答案 2aaa aa2subtask1 50pts length 模式串 106,length 文字串 106,n 1 subtask2 50pts le...