看了幾天居然連字尾自動機的構造原理和性質都沒完全搞懂。。。更不用說應用了。
在這裡膜一下先輩clj大神(的ppt),大神的世界就是不懂。另外還要膜一下國家集訓隊的幾篇**作者,表示還沒看懂orz
先貼乙個講得通俗易懂的字尾自動機學習**(蒟蒻的我居然仍然沒看懂),講得也夠詳細。學習**
苦逼的我·乙個下午就死記硬背了這篇**。感覺:看**比看**裡的長篇大論簡單多了(我是蒟蒻)。
**貼上(終於背下來了):
1view code#define n 1000023
struct
suffix_automaton
4t[n];
9long
tot,root,last;
1011 inline long newnode(long
len)
1217
18 inline void update(long
pla)
1926
if (p==-1)t[np].pre=root;
27else38}
39}40 last=np;41}
4243
void build(char
s)44
51 };
下面是clj的ppt
8.10終於搞懂構造方法了。。其實很簡單orz。只是要了解性質的話還需動動腦子。
字尾自動機模板
include include define maxc 28 using namespace std const int maxn 1e6 5 const int mod 1e9 7 typedef long long ll int len maxn 2 最長子串的長度 該節點字串數量 len x ...
模板 字尾自動機
求子串的出現次數。用類似拓撲排序的思想,從沒有出度的節點開始把他的cnt加在他的字尾連線上。include using namespace std typedef long long ll struct node void copynewnode const int l,const node n c...
模板 字尾陣列 字尾自動機
關於字尾自動機sam,貼乙個非常好的講解 字尾自動機學習小記 交洛谷模板可a 傳送門 洛谷 模板 字尾排序 include using namespace std const int n 1e6 5 char s n int sa n t1 n t2 n c n int n,m 555 void s...