BZOJ4327 JSOI2012 玄武密碼

2021-09-07 03:46:54 字數 467 閱讀 6499

對所有詢問串建立ac自動機。

然後將母串在ac自動機上跑,每走到乙個點x,從x點出發沿著fail指標能到的所有字首都是匹配成功的,暴力向上走,碰到走過的就break,這樣每個點最多隻會被標記一次。

時間複雜度$o(n+100m)$。

#include#includeconst int n=10000003,m=100010;

int tot,son[n][4],f[n],fail[n],q[n];bool v[n];

int n,m,i,fin[m],len[m];char a[n],b[103];

inline int id(char x)

inline void insert(int p)

void make()

void solve()

}inline int ask(int p)

int main()

BZOJ 4327 JSOI2012 玄武密碼

字尾自動機裸題。藉著這道裸題總結一下字尾自動機的查詢問題。1.查字首 查詢時不跳parent,遇到空節點就跳出。2.查子串 查詢時跳parent,記錄最大ans.3.查次數 lct維護right陣列 4.查不同的串的數目 在建樹時維護,乙個點對答案的貢獻為this max len this pare...

BZOJ4327 JSOI2012玄武密碼

description 在美麗的玄武湖畔,雞鳴寺邊,雞籠山前,有一塊富饒而秀美的土地,人們喚作進香河。相傳一日,一縷紫氣從天而至,只一瞬間便消失在了進香河中。老人們說,這是玄武神靈將天書藏匿在此。很多年後,人們終於在進香河地區發現了帶有玄武密碼的文字。更加神奇的是,這份帶有玄武密碼的文字,與玄武湖南...

玄武密碼(bzoj4327)(JSOI2012)

題目描述 原題來自 jsoi 2012 在美麗的玄武湖畔,雞鳴寺邊,雞籠山前,有一塊富饒而秀美的土地,人們喚作進香河。相傳一日,一縷紫氣從天而至,只一瞬間便消失在了進香河中。老人們說,這是玄武神靈將天書藏匿在此。很多年後,人們終於在進香河地區發現了帶有玄武密碼的文字。更加神奇的是,這份帶有玄武密碼的...