ACM入门之字典树/Trie

Posted 辉小歌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ACM入门之字典树/Trie相关的知识,希望对你有一定的参考价值。

字典树,英文名 trie。顾名思义,就是一个像字典一样的树。

常用模板:

const int N=1e5+10;   //注意: N的大小是所有的字符串的总长度,因为最坏的情况下是一个字符就是一个结点
int son[N][26],cnt[N],idx;
void insert(string s)//插入

    int p=0;
    for(int i=0;i<s.size();i++)
    
        int u=s[i]-'a';
        if(!son[p][u]) son[p][u]=++idx;
        p=son[p][u];
    
    cnt[p]++;

int query(string s)//查找

    int p=0;
    for(int i=0;i<s.size();i++)
    
        int u=s[i]-'a';
        if(!son[p][u]) return 0;
        p=son[p][u];
    
    return cnt[p];

入门习题:
835. Trie字符串统计
P2580 于是他错误的点名开始了
143. 最大异或对

以上是关于ACM入门之字典树/Trie的主要内容,如果未能解决你的问题,请参考以下文章

[NEFU ACM大一暑假集训 解题报告]字典树

字典树入门

字符串算法字典树Trie入门

C++ 树进阶系列之深度剖析字典(trie)树

字典树入门

数据结构之Trie树