• 字典树模板


     1 struct Trie
     2 {
     3     const static int maxsig=26;
     4     const static int maxn=500000;
     5     struct node
     6     {
     7         int next[maxsig];
     8         int cnt;
     9     }Trienode[maxn];
    10     int size;
    11     void init()
    12     {
    13         memset(Trienode[0].next,0,sizeof(Trienode[0].next));
    14         Trienode[0].cnt=0;
    15         size=1;
    16     }
    17     int getid(char c)
    18     {
    19         return c-'a';
    20     }
    21     void insert(char *s,int res)
    22     {
    23         int n=strlen(s);
    24         int now=0;
    25         for(int i=0; i<n; i++)
    26         {
    27             int c=getid(s[i]);
    28             if(!Trienode[now].next[c])
    29             {
    30                 memset(Trienode[size].next,0,sizeof(Trienode[size].next));
    31                 Trienode[size].cnt=0;
    32                 Trienode[now].next[c]=size++;
    33             }
    34             now=Trienode[now].next[c];
    35         }
    36         Trienode[now].cnt=res;
    37     }
    38     int find(char *s)
    39     {
    40         int now=0,i;
    41         int n=strlen(s);
    42         for(i=0; i<n; i++)
    43         {
    44             int c=getid(s[i]);
    45             if(Trienode[now].next[c])
    46                 now=Trienode[now].next[c];
    47             else break;
    48         }
    49         if(i==n&&Trienode[now].cnt)
    50             return Trienode[now].cnt;
    51         else return 0;
    52     }
    53 }tree;
  • 相关阅读:
    Spring学习之声明式事物管理
    SSH整合所需jar
    Spring学习之AOP
    常见MyEclipse报错—— serialVersionUID的作用
    Spring学习之基本概念
    Java基础——I/O续
    Java基础——I/O
    Vim学习总结
    Java基础——异常处理
    Git 学习总结
  • 原文地址:https://www.cnblogs.com/xseventh/p/7388388.html
Copyright © 2020-2023  润新知