字典樹模板

2022-07-25 08:57:07 字數 1749 閱讀 4611

1

//在給出的字串中查詢當前字串是否出現過

2 #include 3 #include 4 #include 5 #include 6 #include 7 #include

8 #include 9 #include 10

#define inf 0x3f3f3f3f

11#define fre() freopen("in.txt","r",stdin)

1213

using

namespace

std;

14 typedef long

long

ll;15

const

int maxn = 1e5 + 5;16

inttot,n;

17int trie[maxn][26

];18

//bool isw[maxn];

//查詢整個單詞用

1920

void insert(char* str, int

rt)21

29 rt = trie[rt][x];//

為下乙個字母的插入做準備30}

31//

isw[rt] = true;

//標誌該單詞最後字母的尾節點,在查詢整個單詞時用到32}

3334

35bool _find(char *str,int

rt)36

43return

true;44

}454647

char s[22

];48

intmain()

4958 scanf("

%d",&n);

59for(int i = 1; i <= n; i++)

6067

return0;

68 }

1

//查詢字首出現的次數

2 #include 3 #include 4 #include 5 #include 6 #include 7 #include

8 #include 9 #include 10

#define inf 0x3f3f3f3f

11#define fre() freopen("in.txt","r",stdin)

1213

using

namespace

std;

14 typedef long

long

ll;15

const

int maxn = 1e5 + 5;16

int trie[400001][26],len,root,tot,sum[400001

];17

bool

p;18

intn,m;

19char s[11

];20

21void

insert()

2232}33

intsearch()

34//

root經過此迴圈後變成字首最後乙個字母所在位置的後乙個位置

43return sum[root];//

因為字首後移了乙個儲存,所以此時的sum[root]就是要求的字首出現的次數 44}

45int

main()

4653 scanf("

%d",&m);

54for(int i=1;i<=m;i++)

5559 }

字典樹模板

字典樹,又稱單詞查詢樹,trie樹,是一種樹形結構,典型應用是用於統計,排序和儲存大量的字串,所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是 利用字串的公共字首來節約儲存空間,最大限度的減少無謂的字串比較,查詢效率比雜湊表高。字典樹的應用 字串的快速檢索 雜湊最長公共字首 include usi...

字典樹模板

package template public class triemod trie root new trie for string s str if find root,asdf else public static void insert final trie root,string str ...

字典樹模板

字典樹 字典樹,又稱單詞查詢樹,trie樹,是一種樹形結構,雜湊表的乙個變種。用於統計,排序和儲存大量的字串 也可以儲存其 的 優點就是利用公共的字首來節約儲存空間。在這舉個簡單的例子 比如說我們想儲存3個單詞,nyist nyistacm nyisttc。如果只是 單純的按照以前的字元陣列儲存的思...