zoukankan      html  css  js  c++  java
  • 字典树

     1 const int maxn = 1e5 + 7;
     2 const int SIZE = 10;// 字符数量,如小写字母改为26,记得修改getid
     3 
     4 struct Dictionary_tree{
     5     int cnt;
     6     int next[maxn][SIZE];
     7     int val[maxn];
     8 
     9     void init(){
    10         cnt = 0;
    11         memset(next[cnt],-1,sizeof(next[cnt]));
    12         val[0] = 0;
    13     }
    14 
    15     void add(){
    16         cnt++;
    17         memset(next[cnt],-1,sizeof(next[cnt]));
    18         val[cnt] = 0;
    19     }
    20     int getid(char c){
    21         return c - '0';
    22     }
    23     int build(char *s,int v){
    24         int now = 0;
    25         for(int i=0;s[i];i++){
    26             int id = getid(s[i]);
    27             if(next[now][id] == -1){
    28                 add();
    29                 next[now][id] = cnt;
    30             }
    31             now = next[now][id];
    32             if(val[now] == 1) return 1;
    33         }
    34         val[now] = v;
    35         return 0;
    36     }
    37 
    38     int query(char *s){
    39         int now = 0;
    40         for(int i=0;s[i];i++){
    41             int id = getid(s[i]);
    42             if(next[now][id] == -1) return -1;
    43             now = next[now][id];
    44         }
    45         return val[now];
    46     }
    47 }tre;
  • 相关阅读:
    uva1220--树的最大独立集+判重
    UVA12186--树型DP
    HDU4171--bfs+树
    远程调用
    高并发业务
    wireshark
    将java程序打包成exe文件
    将博客搬至CSDN
    Mysql分区
    MogileFS
  • 原文地址:https://www.cnblogs.com/yZiii/p/7284467.html
Copyright © 2011-2022 走看看