字典树模板

Posted ccsu-zry

tags:

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

抄的

#include<stdio.h>
#include<string.h>
const int maxnode=1000005;
const int sigma_size=26;
struct Trie{
    int ch[maxnode][sigma_size];
    int sz;
    int num[maxnode];
    Trie(){ 
        sz=1;
         memset(ch[0],0,sizeof(ch[0]));
         memset(num,0,sizeof(num));
    }
    int idx(char c)  { return c - a; }
    
    
    void insert(char *s, int v){
        int  u=0, n =strlen(s);
        for(int i=0;i<n;i++){
            int c= idx(s[i]);
            if(!ch[u][c]){
                memset(ch[sz],0,sizeof(ch[sz]));
                
                num[sz]=0;
                ch[u][c]=sz++;
            }
            u=ch[u][c];
            num[u]++;
        } 
    }
 
 
    int search(char *s){
        int n=strlen(s);
        int u=0;
        for(int i=0;i<n;i++){
            int c=idx(s[i]);
            if(!ch[u][c])
                return 0;
            
            u=ch[u][c];
            
        }
        return num[u];
    }
};
Trie T;
int main()
{
    char s[15];
    int flag=0;
    
    while(gets(s)){
        if(s[0]==)break;
        T.insert(s,1);
    }
    
    while(~scanf("%s",s)){
        printf("%d
",T.search(s));
    }
    
}

 

以上是关于字典树模板的主要内容,如果未能解决你的问题,请参考以下文章

字典树数组模板

cf842D 01字典树|线段树 模板见hdu4825

Shortest Prefixes 字典树模板

字典树模板+HDU 1671 ( Phone List )(字典树)

字典树(模板)

字典树模板