字尾自動機模板(初步)

2022-06-04 07:51:09 字數 725 閱讀 7251

看了幾天居然連字尾自動機的構造原理和性質都沒完全搞懂。。。更不用說應用了。

在這裡膜一下先輩clj大神(的ppt),大神的世界就是不懂。另外還要膜一下國家集訓隊的幾篇**作者,表示還沒看懂orz

先貼乙個講得通俗易懂的字尾自動機學習**(蒟蒻的我居然仍然沒看懂),講得也夠詳細。學習**

苦逼的我·乙個下午就死記硬背了這篇**。感覺:看**比看**裡的長篇大論簡單多了(我是蒟蒻)。

**貼上(終於背下來了):

1

#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 };

view code

下面是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...