JSOI2012 玄武密碼 題解 AC自動機

2022-03-16 16:57:39 字數 829 閱讀 2652

顯然是ac自動機對吧

插入單詞之後把文章在自動機上跑一遍,到達過的節點打上花火標記

之後檢查一下每個單詞有幾個標記即可

可以把題目中的4個字母對映成abcd方便遍歷

#include#include

#include

#include

using

namespace

std;

const

int n=1e7+5

;char word[100005][105

],s[n];

intn,m;

ch)}

struct

ac_auto

};node *root;

void

ini()

void ins(char *str)

now->size++;

}void

build()

else root->son[i]=root;

}while(!q.empty())

else x->son[i]=x->fail->son[i];}}

}void query(char *str)

}int ans(char *str)

return i-1

; }

}ac;

intmain()

ac.build();

ac.query(s);

for(int i=1;i<=m;i++)printf("

%d\n

",ac.ans(word[i]));

return0;

}

JSOI2012 玄武密碼

傳送 這道題就是乙個sam的水題 所以這也是一篇很水的部落格 我們建完sam後,把每乙個串放上去跑就行了。因為題目要求字首匹配,所以一旦失配,就直接返回了。include include include include include include include include include ...

BZOJ 4327 JSOI2012 玄武密碼

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

BZOJ4327 JSOI2012玄武密碼

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