码迷,mamicode.com
首页 > 其他好文 > 详细

Trie树模板

时间:2016-08-14 16:18:07      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:

struct Trie{
    int ch[maxnnode][sigma_size];
    int val[maxnnode];
    int sz;
    Trie(){sz=1;memset(ch[0],0,sizeof(ch[0]));}
    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]));
             val[sz]=0;
             ch[u][c]=sz++;
            }
            u=ch[u][c];
       }
       val[u]=v;
    }
    bool Find(char* s)
    {
        int u=0,n=strlen(s);
        for(int i=0;i<n;i++)
        {
            int c=idx(s[i]);
            if(!ch[u][c]) return false;
            u=ch[u][c];
        }
        return true;
    }
};

 

题目: 

UVALive3942 Remember the Word

UVA11732 "strcmp()" Anyone?

UVA11488 Hyper Prefix Sets

UVALive3703 Billing Tables

Trie树模板

标签:

原文地址:http://www.cnblogs.com/byene/p/5770362.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!