hihoCoder Trie 树

来源:互联网 发布:淘宝线下门店有什么用 编辑:程序博客网 时间:2024/06/07 17:29

题目:https://hihocoder.com/problemset/problem/1014


字典树:统计字典中前缀为str的所有字符串的总数。


#include <bits/stdc++.h>using namespace std;const int MAXN = 400000 + 7;int ch[MAXN][26];int val[MAXN];int sz = 1;void insert_str(string str) {    int u = 0, c;    for(int i = 0; str[i]; ++i) {        c = str[i] - 'a';        if(!ch[u][c]) {            ch[u][c] = sz++;        }        u = ch[u][c];        val[u]++;    }}int query_str(string str) {    int u = 0, c;    for(int i = 0; str[i]; ++i) {        c = str[i] - 'a';        if(!ch[u][c]) {            return 0;        }        u = ch[u][c];    }    return val[u];}int main() {    ios::sync_with_stdio(false);    cin.tie(NULL);    cout.tie(NULL);    fill((int *)ch, (int *)ch + MAXN * 26, 0);    fill(val, val + MAXN, 0);    sz = 1;    int n, m;    string str;    cin >> n;    while(n--) {        cin >> str;        insert_str(str);    }    cin >> m;    while(m--) {        cin >> str;        cout << query_str(str) << endl;    }    return 0;}


0 0