zoukankan      html  css  js  c++  java
  • hiho一下第二周 Trie树

    题目链接:http://hihocoder.com/problemset/problem/1014

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstdlib>
     4 #include <cstring>
     5 using namespace std;
     6 
     7 const int maxn = 1e6 + 5;  // 1e5 * 10 (1e5个单词 * 单词长度 (<= 10))
     8 const int N = 26;
     9 
    10 int le;
    11 char str[N];
    12 
    13 struct Trie
    14 {
    15     int cnt;
    16     int next[N];
    17     void init() {
    18         cnt = 0;
    19         memset(next, -1, sizeof(next));
    20     }
    21 }T[maxn];
    22 
    23 void Build(char *s)
    24 {
    25     int i = 0, p = 0;
    26     while (s[i]) {
    27         int x = s[i] - 'a';
    28         if (T[p].next[x] == -1) {
    29             T[le].init();
    30             T[p].next[x] = le++;
    31       //      printf("T[%d].next[%d] = %d,  ", p, x, T[p].next[x]);
    32         }
    33         p = T[p].next[x];
    34         T[p].cnt++;
    35    //     printf("T[%d].cnt = %d
    ", p, T[p].cnt);
    36         i++;
    37     }
    38 }
    39 
    40 void Query(char *s)
    41 {
    42     int i = 0, p = 0;
    43     while (s[i]) {
    44         int x = s[i] - 'a';
    45         if (T[p].next[x] == -1) {
    46             puts("0");
    47             return ;
    48         }
    49         p = T[p].next[x];
    50         i++;
    51     }
    52     printf("%d
    ", T[p].cnt);
    53 }
    54 
    55 int main()
    56 {
    57     int n, m;
    58     #ifndef ONLINE_JUDGE
    59         freopen("in.txt", "r", stdin);
    60     #endif // ONLINE_JUDGE
    61 
    62     while (scanf("%d", &n) != EOF) {
    63         le = 1;
    64         T[0].init();   // !root
    65         while (n--) {
    66             scanf("%s", str);
    67             Build(str);
    68         }
    69         scanf("%d", &m);
    70         while (m--) {
    71             scanf("%s", str);
    72             Query(str);
    73         }
    74     }
    75     return 0;
    76 }
  • 相关阅读:
    软件测试 (三) 界面测试
    软件测试 (二) 六年软件测试感悟
    软件测试 (一) 软件测试方法大汇总
    第二阶段站立会议6
    第二阶段站立会议5
    构建之法阅读笔记04
    第二阶段站立会议4
    第二阶段站立会议3
    第二阶段站立会议2
    第二阶段站立会议1
  • 原文地址:https://www.cnblogs.com/windysai/p/4858022.html
Copyright © 2011-2022 走看看